Orphaned for 6+ weeks

This commit is contained in:
Miro Hrončok 2022-10-01 12:47:14 +02:00
parent dac3d14541
commit d5c271bdab
30 changed files with 1 additions and 9812 deletions

9
.gitignore vendored
View File

@ -1,9 +0,0 @@
schroot_1.4.1.orig.tar.gz
schroot_1.4.2.orig.tar.gz
/schroot_1.4.10.orig.tar.gz
/schroot_1.4.19.orig.tar.bz2
/schroot_1.4.21.orig.tar.bz2
/schroot_1.4.23.orig.tar.bz2
/schroot_1.4.25.orig.tar.bz2
/schroot_1.6.5.orig.tar.xz
/schroot_1.6.10.orig.tar.xz

View File

@ -1,87 +0,0 @@
From: =?utf-8?q?Rapha=C3=ABl_Hertzog?= <hertzog@debian.org>
Date: Sun, 16 Aug 2015 16:02:25 +0200
Subject: 10mount: Move mount directory to /var/run
Note that this patch merges multiple upstream commits.
Bug-Debian: http://bugs.debian.org/762597
Origin: upstream
Applied-Upstream: 1.6.11
---
CMakeLists.txt | 2 +-
bin/schroot/CMakeLists.txt | 1 -
bin/schroot/Makefile.am | 1 -
etc/setup.d/10mount | 9 +++++++++
scripts/global.mk | 2 +-
5 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8374937..2e18153 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -127,7 +127,7 @@ set(bash_completion_dir "${CMAKE_INSTALL_SYSCONFDIR}/bash_completion.d"
# schroot directories
set(SCHROOT_LOCALE_DIR "${CMAKE_INSTALL_FULL_LOCALEDIR}"
CACHE PATH "Locale directory")
-set(SCHROOT_MOUNT_DIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/${CMAKE_PROJECT_NAME}/mount"
+set(SCHROOT_MOUNT_DIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/run/${CMAKE_PROJECT_NAME}/mount"
CACHE PATH "Directory under which mount chroots")
set(SCHROOT_SESSION_DIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/${CMAKE_PROJECT_NAME}/session"
CACHE PATH "Directory for storing session metadata")
diff --git a/bin/schroot/CMakeLists.txt b/bin/schroot/CMakeLists.txt
index 0d5f1b9..b306b58 100644
--- a/bin/schroot/CMakeLists.txt
+++ b/bin/schroot/CMakeLists.txt
@@ -45,7 +45,6 @@ install(TARGETS schroot RUNTIME
set(installdirs
${SCHROOT_CONF_CHROOT_D}
- ${SCHROOT_MOUNT_DIR}
${SCHROOT_SESSION_DIR}
${SCHROOT_FILE_UNPACK_DIR}
${SCHROOT_OVERLAY_DIR}
diff --git a/bin/schroot/Makefile.am b/bin/schroot/Makefile.am
index 18b8ec4..d1d510e 100644
--- a/bin/schroot/Makefile.am
+++ b/bin/schroot/Makefile.am
@@ -55,7 +55,6 @@ install-exec-hook:
install-data-hook:
$(MKDIR_P) $(DESTDIR)$(schroot_sysconf_chrootdir)
- $(MKDIR_P) $(DESTDIR)$(schroot_mountdir)
$(MKDIR_P) $(DESTDIR)$(schroot_sessiondir)
$(MKDIR_P) $(DESTDIR)$(schroot_file_unpackdir)
$(MKDIR_P) $(DESTDIR)$(schroot_overlaydir)
diff --git a/etc/setup.d/10mount b/etc/setup.d/10mount
index 27c18d0..bbfe118 100755
--- a/etc/setup.d/10mount
+++ b/etc/setup.d/10mount
@@ -136,6 +136,15 @@ if [ "$VERBOSE" = "verbose" ]; then
# FSCK_VERBOSE="-V"
fi
+if [ -e "$MOUNT_DIR" ]; then
+ if [ ! -d "$MOUNT_DIR" ]; then
+ error "$MOUNT_DIR is not a directory"
+ exit 1
+ fi
+else
+ mkdir -m 0755 -p "$MOUNT_DIR"
+fi
+
if [ "$CHROOT_TYPE" = "directory" ] \
|| [ "$CHROOT_TYPE" = "file" ] \
|| [ "$CHROOT_TYPE" = "loopback" ] \
diff --git a/scripts/global.mk b/scripts/global.mk
index f473a6b..928f7ad 100644
--- a/scripts/global.mk
+++ b/scripts/global.mk
@@ -19,7 +19,7 @@
#
#####################################################################
-schroot_mountdir=$(localstatedir)/lib/$(PACKAGE)/mount
+schroot_mountdir=$(localstatedir)/run/$(PACKAGE)/mount
schroot_sessiondir=$(localstatedir)/lib/$(PACKAGE)/session
schroot_file_unpackdir=$(localstatedir)/lib/$(PACKAGE)/unpack
schroot_overlaydir=$(localstatedir)/lib/$(PACKAGE)/union/overlay

View File

@ -1,578 +0,0 @@
From: =?utf-8?q?Rapha=C3=ABl_Hertzog?= <hertzog@debian.org>
Date: Sun, 16 Aug 2015 15:40:43 +0200
Subject: Add SESSION_SOURCE and CHROOT_SESSION_SOURCE
Origin: upstream
Applied-Upstream: 1.6.11
Bug-Debian: http://bugs.debian.org/718127
---
man/schroot-setup.5.man | 4 ++++
sbuild/sbuild-chroot-facet-session-clonable.cc | 2 +-
sbuild/sbuild-chroot-facet-session.cc | 28 ++++++++++++++++++++-----
sbuild/sbuild-chroot-facet-session.h | 29 ++++++++++++++++++++++++--
sbuild/sbuild-chroot.cc | 4 ++++
sbuild/sbuild-chroot.h | 5 +++--
sbuild/sbuild-tr1types.h | 2 ++
test/sbuild-chroot-block-device.cc | 24 +++++++++++++++++++++
test/sbuild-chroot-btrfs-snapshot.cc | 12 ++++++++---
test/sbuild-chroot-custom.cc | 1 +
test/sbuild-chroot-directory.cc | 6 ++++++
test/sbuild-chroot-file.cc | 5 +++++
test/sbuild-chroot-loopback.cc | 6 ++++++
test/sbuild-chroot-lvm-snapshot.cc | 4 ++++
test/sbuild-chroot-plain.cc | 1 +
15 files changed, 120 insertions(+), 13 deletions(-)
diff --git a/man/schroot-setup.5.man b/man/schroot-setup.5.man
index 836634e..49ad3b0 100644
--- a/man/schroot-setup.5.man
+++ b/man/schroot-setup.5.man
@@ -93,6 +93,10 @@ Set to \[oq]true\[cq] if a session will be cloned, otherwise \[oq]false\[cq].
CHROOT_SESSION_PURGE
Set to \[oq]true\[cq] if a session will be purged, otherwise \[oq]false\[cq].
.TP
+CHROOT_SESSION_SOURCE
+Set to \[oq]true\[cq] if a session will be created from a source chroot,
+otherwise \[oq]false\[cq].
+.TP
CHROOT_TYPE
The type of the chroot. This is useful for restricting a setup task to
particular types of chroot (e.g. only block devices or LVM snapshots).
diff --git a/sbuild/sbuild-chroot-facet-session-clonable.cc b/sbuild/sbuild-chroot-facet-session-clonable.cc
index b74f14b..ca208b4 100644
--- a/sbuild/sbuild-chroot-facet-session-clonable.cc
+++ b/sbuild/sbuild-chroot-facet-session-clonable.cc
@@ -90,7 +90,7 @@ chroot_facet_session_clonable::clone_session_setup (chroot const& parent,
clone->remove_facet<chroot_facet_session_clonable>();
// Disable source cloning.
clone->remove_facet<chroot_facet_source_clonable>();
- clone->add_facet(chroot_facet_session::create());
+ clone->add_facet(chroot_facet_session::create(owner->shared_from_this()));
// Disable session, delete aliases.
chroot_facet_session::ptr psess(clone->get_facet<chroot_facet_session>());
diff --git a/sbuild/sbuild-chroot-facet-session.cc b/sbuild/sbuild-chroot-facet-session.cc
index a3114bc..477f4bd 100644
--- a/sbuild/sbuild-chroot-facet-session.cc
+++ b/sbuild/sbuild-chroot-facet-session.cc
@@ -21,7 +21,7 @@
#include "sbuild-chroot.h"
#include "sbuild-chroot-config.h"
#include "sbuild-chroot-facet-session.h"
-#include "sbuild-chroot-facet-source-clonable.h"
+#include "sbuild-chroot-facet-source.h"
#include "sbuild-chroot-plain.h"
#ifdef SBUILD_FEATURE_LVMSNAP
#include "sbuild-chroot-lvm-snapshot.h"
@@ -39,10 +39,11 @@ using boost::format;
using std::endl;
using namespace sbuild;
-chroot_facet_session::chroot_facet_session ():
+chroot_facet_session::chroot_facet_session (const chroot::ptr& parent_chroot):
chroot_facet(),
original_chroot_name(),
- selected_chroot_name()
+ selected_chroot_name(),
+ parent_chroot(parent_chroot)
{
}
@@ -53,7 +54,13 @@ chroot_facet_session::~chroot_facet_session ()
chroot_facet_session::ptr
chroot_facet_session::create ()
{
- return ptr(new chroot_facet_session());
+ return ptr(new chroot_facet_session(chroot::ptr()));
+}
+
+chroot_facet_session::ptr
+chroot_facet_session::create (const chroot::ptr& parent_chroot)
+{
+ return ptr(new chroot_facet_session(parent_chroot));
}
chroot_facet::ptr
@@ -97,6 +104,12 @@ chroot_facet_session::set_selected_name (std::string const& name)
this->selected_chroot_name = shortname;
}
+const chroot::ptr&
+chroot_facet_session::get_parent_chroot() const
+{
+ return parent_chroot;
+}
+
void
chroot_facet_session::setup_env (chroot const& chroot,
environment& env) const
@@ -113,7 +126,12 @@ chroot_facet_session::setup_env (chroot const& chroot,
sbuild::chroot::session_flags
chroot_facet_session::get_session_flags (chroot const& chroot) const
{
- return chroot::SESSION_NOFLAGS;
+ sbuild::chroot::session_flags flags = sbuild::chroot::SESSION_NOFLAGS;
+
+ if (parent_chroot && parent_chroot->get_facet<chroot_facet_source>())
+ flags = flags | sbuild::chroot::SESSION_SOURCE;
+
+ return flags;
}
void
diff --git a/sbuild/sbuild-chroot-facet-session.h b/sbuild/sbuild-chroot-facet-session.h
index bc90738..49d8f34 100644
--- a/sbuild/sbuild-chroot-facet-session.h
+++ b/sbuild/sbuild-chroot-facet-session.h
@@ -42,8 +42,12 @@ namespace sbuild
typedef std::shared_ptr<const chroot_facet_session> const_ptr;
private:
- /// The constructor.
- chroot_facet_session ();
+ /** The constructor.
+ *
+ * @param parent_chroot the chroot from which this session was
+ * cloned.
+ */
+ chroot_facet_session (const chroot::ptr& parent_chroot);
public:
/// The destructor.
@@ -57,6 +61,16 @@ namespace sbuild
static ptr
create ();
+ /**
+ * Create a chroot facet.
+ *
+ * @param parent_chroot the chroot from which this session was
+ * cloned.
+ * @returns a shared_ptr to the new chroot facet.
+ */
+ static ptr
+ create (const chroot::ptr& parent_chroot);
+
virtual chroot_facet::ptr
clone () const;
@@ -96,6 +110,15 @@ namespace sbuild
void
set_selected_name (std::string const& name);
+ /**
+ * Get parent chroot.
+ *
+ * @returns a pointer to the chroot; may be null if no parent
+ * exists.
+ */
+ const chroot::ptr&
+ get_parent_chroot() const;
+
virtual void
setup_env (chroot const& chroot,
environment& env) const;
@@ -121,6 +144,8 @@ namespace sbuild
std::string original_chroot_name;
/// Selected chroot name.
std::string selected_chroot_name;
+ /// Parent chroot.
+ const chroot::ptr parent_chroot;
};
}
diff --git a/sbuild/sbuild-chroot.cc b/sbuild/sbuild-chroot.cc
index 6ec7088..8f31e9f 100644
--- a/sbuild/sbuild-chroot.cc
+++ b/sbuild/sbuild-chroot.cc
@@ -105,6 +105,7 @@ error<sbuild::chroot::error_code>::error_strings
init_errors + (sizeof(init_errors) / sizeof(init_errors[0])));
sbuild::chroot::chroot ():
+ std::enable_shared_from_this<chroot>(),
name(),
description(),
users(),
@@ -132,6 +133,7 @@ sbuild::chroot::chroot ():
}
sbuild::chroot::chroot (const chroot& rhs):
+ std::enable_shared_from_this<chroot>(),
name(rhs.name),
description(rhs.description),
users(rhs.users),
@@ -564,6 +566,8 @@ sbuild::chroot::setup_env (chroot const& chroot,
static_cast<bool>(chroot.get_session_flags() & SESSION_CLONE));
env.add("CHROOT_SESSION_PURGE",
static_cast<bool>(chroot.get_session_flags() & SESSION_PURGE));
+ env.add("CHROOT_SESSION_SOURCE",
+ static_cast<bool>(chroot.get_session_flags() & SESSION_SOURCE));
}
void
diff --git a/sbuild/sbuild-chroot.h b/sbuild/sbuild-chroot.h
index e3f1cf7..ba7271c 100644
--- a/sbuild/sbuild-chroot.h
+++ b/sbuild/sbuild-chroot.h
@@ -42,7 +42,7 @@ namespace sbuild
* configuration file, and may be initialised directly from an open
* keyfile.
*/
- class chroot
+ class chroot : public std::enable_shared_from_this<chroot>
{
public:
/// Type of setup to perform.
@@ -59,7 +59,8 @@ namespace sbuild
SESSION_NOFLAGS = 0, ///< No flags are set.
SESSION_CREATE = 1 << 0, ///< The chroot supports session creation.
SESSION_CLONE = 1 << 1, ///< The chroot supports cloning.
- SESSION_PURGE = 1 << 2 ///< The chroot should be purged.
+ SESSION_PURGE = 1 << 2, ///< The chroot should be purged.
+ SESSION_SOURCE = 1 << 3 ///< The chroot is a source chroot.
};
/// Message verbosity.
diff --git a/sbuild/sbuild-tr1types.h b/sbuild/sbuild-tr1types.h
index 2739a50..a3b3191 100644
--- a/sbuild/sbuild-tr1types.h
+++ b/sbuild/sbuild-tr1types.h
@@ -39,6 +39,7 @@ namespace std {
using std::tr1::static_pointer_cast;
using std::tr1::const_pointer_cast;
using std::tr1::dynamic_pointer_cast;
+ using std::tr1::enable_shared_from_this;
}
# elif HAVE_BOOST_SHARED_PTR_HPP
# include <boost/shared_ptr.hpp>
@@ -48,6 +49,7 @@ namespace std {
using boost::static_pointer_cast;
using boost::const_pointer_cast;
using boost::dynamic_pointer_cast;
+ using boost::enable_shared_from_this;
}
# else
# error A shared_ptr implementation is not available
diff --git a/test/sbuild-chroot-block-device.cc b/test/sbuild-chroot-block-device.cc
index addcf97..ce16f37 100644
--- a/test/sbuild-chroot-block-device.cc
+++ b/test/sbuild-chroot-block-device.cc
@@ -152,6 +152,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
#ifdef SBUILD_FEATURE_UNION
expected.add("CHROOT_UNION_TYPE", "none");
#endif // SBUILD_FEATURE_UNION
@@ -169,6 +170,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
expected.add("CHROOT_MOUNT_DEVICE", "/dev/testdev");
#ifdef SBUILD_FEATURE_UNION
expected.add("CHROOT_UNION_TYPE", "none");
@@ -184,6 +186,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "true");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
expected.add("CHROOT_UNION_TYPE", "aufs");
expected.add("CHROOT_UNION_MOUNT_OPTIONS", "union-mount-options");
expected.add("CHROOT_UNION_OVERLAY_DIRECTORY", "/overlay");
@@ -202,6 +205,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "true");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
expected.add("CHROOT_MOUNT_DEVICE", "/dev/testdev");
expected.add("CHROOT_UNION_TYPE", "aufs");
expected.add("CHROOT_UNION_MOUNT_OPTIONS", "union-mount-options");
@@ -220,9 +224,29 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_block_device>::test_setup_env(source_union, expected);
}
+
+ void test_setup_env_session_source_union()
+ {
+ sbuild::environment expected;
+ setup_env_gen(expected);
+ expected.add("SESSION_ID", "test-union-session-name");
+ expected.add("CHROOT_ALIAS", "test-union-session-name");
+ expected.add("CHROOT_DESCRIPTION", chroot->get_description() + ' ' + _("(source chroot)") + ' ' + _("(session chroot)"));
+ expected.add("CHROOT_SESSION_CLONE", "false");
+ expected.add("CHROOT_SESSION_CREATE", "false");
+ expected.add("CHROOT_SESSION_PURGE", "true");
+ expected.add("CHROOT_SESSION_SOURCE", "true");
+ expected.add("CHROOT_MOUNT_DEVICE", "/dev/testdev");
+ expected.add("CHROOT_UNION_TYPE", "aufs");
+ expected.add("CHROOT_UNION_MOUNT_OPTIONS", "union-mount-options");
+ expected.add("CHROOT_UNION_OVERLAY_DIRECTORY", "/overlay/test-union-session-name");
+ expected.add("CHROOT_UNION_UNDERLAY_DIRECTORY", "/underlay/test-union-session-name");
+ test_chroot_base<chroot_block_device>::test_setup_env(source_union, expected);
+ }
#endif // SBUILD_FEATURE_UNION
void setup_keyfile_block(sbuild::keyfile &expected, std::string group)
diff --git a/test/sbuild-chroot-btrfs-snapshot.cc b/test/sbuild-chroot-btrfs-snapshot.cc
index dc29525..195ccb5 100644
--- a/test/sbuild-chroot-btrfs-snapshot.cc
+++ b/test/sbuild-chroot-btrfs-snapshot.cc
@@ -166,6 +166,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "true");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_btrfs_snapshot>::test_setup_env(chroot, expected);
}
@@ -186,6 +187,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "true");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_btrfs_snapshot>::test_setup_env(session, expected);
}
@@ -201,6 +203,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_btrfs_snapshot>::test_setup_env(source, expected);
}
@@ -210,14 +213,17 @@ public:
sbuild::environment expected;
setup_env_gen(expected);
expected.add("CHROOT_TYPE", "directory");
+ expected.add("SESSION_ID", "test-session-name");
expected.add("CHROOT_NAME", "test-name");
- expected.add("CHROOT_DESCRIPTION", chroot->get_description() + ' ' + _("(source chroot)"));
+ expected.add("CHROOT_ALIAS", "test-session-name");
+ expected.add("CHROOT_DESCRIPTION", chroot->get_description() + ' ' + _("(source chroot)") + ' ' + _("(session chroot)"));
expected.add("CHROOT_DIRECTORY", "/srv/chroot/sid");
expected.add("CHROOT_SESSION_CLONE", "false");
- expected.add("CHROOT_SESSION_CREATE", "true");
+ expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "true");
- test_chroot_base<chroot_btrfs_snapshot>::test_setup_env(source, expected);
+ test_chroot_base<chroot_btrfs_snapshot>::test_setup_env(session_source, expected);
}
void setup_keyfile_btrfs(sbuild::keyfile &expected, std::string group)
diff --git a/test/sbuild-chroot-custom.cc b/test/sbuild-chroot-custom.cc
index 971f1ef..7b56bda 100644
--- a/test/sbuild-chroot-custom.cc
+++ b/test/sbuild-chroot-custom.cc
@@ -111,6 +111,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
expected.add("CUSTOM_DIRECTORY", "/srv/chroots/sid");
expected.add("CUSTOM_OPTIONS", "foobar");
}
diff --git a/test/sbuild-chroot-directory.cc b/test/sbuild-chroot-directory.cc
index 346fd96..470a082 100644
--- a/test/sbuild-chroot-directory.cc
+++ b/test/sbuild-chroot-directory.cc
@@ -135,6 +135,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
#ifdef SBUILD_FEATURE_UNION
expected.add("CHROOT_UNION_TYPE", "none");
#endif // SBUILD_FEATURE_UNION
@@ -153,6 +154,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
#ifdef SBUILD_FEATURE_UNION
expected.add("CHROOT_UNION_TYPE", "none");
#endif // SBUILD_FEATURE_UNION
@@ -169,6 +171,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "true");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
expected.add("CHROOT_UNION_TYPE", "aufs");
expected.add("CHROOT_UNION_MOUNT_OPTIONS", "union-mount-options");
expected.add("CHROOT_UNION_OVERLAY_DIRECTORY", "/overlay");
@@ -188,6 +191,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "true");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
expected.add("CHROOT_UNION_TYPE", "aufs");
expected.add("CHROOT_UNION_MOUNT_OPTIONS", "union-mount-options");
expected.add("CHROOT_UNION_OVERLAY_DIRECTORY", "/overlay/test-union-session-name");
@@ -205,6 +209,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_directory>::test_setup_env(source_union, expected);
}
@@ -220,6 +225,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "true");
test_chroot_base<chroot_directory>::test_setup_env(session_source_union, expected);
}
diff --git a/test/sbuild-chroot-file.cc b/test/sbuild-chroot-file.cc
index 5949920..1f834b9 100644
--- a/test/sbuild-chroot-file.cc
+++ b/test/sbuild-chroot-file.cc
@@ -155,6 +155,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "true");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_file>::test_setup_env(chroot, expected);
}
@@ -167,6 +168,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "true");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_file>::test_setup_env(chroot, expected);
}
@@ -182,6 +184,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "true");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_file>::test_setup_env(session, expected);
}
@@ -195,6 +198,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_file>::test_setup_env(source, expected);
}
@@ -210,6 +214,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "true");
+ expected.add("CHROOT_SESSION_SOURCE", "true");
test_chroot_base<chroot_file>::test_setup_env(session_source, expected);
}
diff --git a/test/sbuild-chroot-loopback.cc b/test/sbuild-chroot-loopback.cc
index 8517dfc..5f04dff 100644
--- a/test/sbuild-chroot-loopback.cc
+++ b/test/sbuild-chroot-loopback.cc
@@ -151,6 +151,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
#ifdef SBUILD_FEATURE_UNION
expected.add("CHROOT_UNION_TYPE", "none");
#endif // SBUILD_FEATURE_UNION
@@ -169,6 +170,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
expected.add("CHROOT_MOUNT_DEVICE", loopback_file);
#ifdef SBUILD_FEATURE_UNION
@@ -187,6 +189,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "true");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
expected.add("CHROOT_UNION_TYPE", "aufs");
expected.add("CHROOT_UNION_MOUNT_OPTIONS", "union-mount-options");
expected.add("CHROOT_UNION_OVERLAY_DIRECTORY", "/overlay");
@@ -206,6 +209,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "true");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
expected.add("CHROOT_MOUNT_DEVICE", loopback_file);
expected.add("CHROOT_UNION_TYPE", "aufs");
expected.add("CHROOT_UNION_MOUNT_OPTIONS", "union-mount-options");
@@ -224,6 +228,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_loopback>::test_setup_env(source_union, expected);
}
@@ -241,6 +246,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "true");
test_chroot_base<chroot_loopback>::test_setup_env(session_source_union, expected);
}
diff --git a/test/sbuild-chroot-lvm-snapshot.cc b/test/sbuild-chroot-lvm-snapshot.cc
index 632fa86..878478a 100644
--- a/test/sbuild-chroot-lvm-snapshot.cc
+++ b/test/sbuild-chroot-lvm-snapshot.cc
@@ -139,6 +139,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "true");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_lvm_snapshot>::test_setup_env(chroot, expected);
}
@@ -160,6 +161,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "true");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_lvm_snapshot>::test_setup_env(session, expected);
}
@@ -174,6 +176,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "true");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_lvm_snapshot>::test_setup_env(source, expected);
}
@@ -191,6 +194,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "true");
test_chroot_base<chroot_lvm_snapshot>::test_setup_env(session_source, expected);
}
diff --git a/test/sbuild-chroot-plain.cc b/test/sbuild-chroot-plain.cc
index 8f0d249..4de2c00 100644
--- a/test/sbuild-chroot-plain.cc
+++ b/test/sbuild-chroot-plain.cc
@@ -104,6 +104,7 @@ public:
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
expected.add("CHROOT_SESSION_PURGE", "false");
+ expected.add("CHROOT_SESSION_SOURCE", "false");
test_chroot_base<chroot_plain>::test_setup_env(chroot, expected);
}

View File

@ -1,78 +0,0 @@
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Thu, 13 Nov 2014 11:19:19 +0100
Subject: Add support for more compression formats
Origin: upstream, https://github.com/codelibre-net/schroot/commit/22e04451800756b59f6e47b092ed952bc0dc995f
Applied-Upstream: 1.6.11
---
etc/setup.d/05file | 18 ++++++++++++++++++
man/schroot.conf.5.man | 13 +++++++------
2 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/etc/setup.d/05file b/etc/setup.d/05file
index 87ab4c9..921a7e2 100755
--- a/etc/setup.d/05file
+++ b/etc/setup.d/05file
@@ -32,6 +32,12 @@ check_filetype()
filetype="tgz"
elif echo "$CHROOT_FILE" | egrep -q '(\.tar\.bz2|\.tbz)$'; then
filetype="tbz"
+ elif echo "$CHROOT_FILE" | egrep -q '(\.tar\.xz|\.txz)$'; then
+ filetype="txz"
+ elif echo "$CHROOT_FILE" | egrep -q '(\.tar\.lzo|\.tzo)$'; then
+ filetype="tzo"
+ elif echo "$CHROOT_FILE" | egrep -q '(\.tar\.lz4|\.tlz4)$'; then
+ filetype="tlz4"
else
fatal "Unsupported filetype for $CHROOT_FILE"
fi
@@ -50,6 +56,12 @@ unpack_file()
tar $TAR_VERBOSE -xzf "$CHROOT_FILE"
elif [ "$filetype" = "tbz" ]; then
tar $TAR_VERBOSE -xjf "$CHROOT_FILE"
+ elif [ "$filetype" = "txz" ]; then
+ tar $TAR_VERBOSE -xJf "$CHROOT_FILE"
+ elif [ "$filetype" = "tzo" ]; then
+ tar $TAR_VERBOSE --lzop -xf "$CHROOT_FILE"
+ elif [ "$filetype" = "tlz4" ]; then
+ lz4 -cd "$CHROOT_FILE" | tar $TAR_VERBOSE -x
else
fatal "Unsupported filetype for $CHROOT_FILE"
fi
@@ -68,6 +80,12 @@ repack_file()
tar $TAR_VERBOSE -czf "$NEWFILE" .
elif [ "$filetype" = "tbz" ]; then
tar $TAR_VERBOSE -cjf "$NEWFILE" .
+ elif [ "$filetype" = "txz" ]; then
+ tar $TAR_VERBOSE -cJf "$NEWFILE" .
+ elif [ "$filetype" = "tzo" ]; then
+ tar $TAR_VERBOSE --lzop -cf "$NEWFILE" .
+ elif [ "$filetype" = "tlz4" ]; then
+ tar $TAR_VERBOSE -c . | lz4 > "$NEWFILE"
else
fatal "Unsupported filetype for $CHROOT_FILE"
fi
diff --git a/man/schroot.conf.5.man b/man/schroot.conf.5.man
index 7b5d23d..dc2dc5f 100644
--- a/man/schroot.conf.5.man
+++ b/man/schroot.conf.5.man
@@ -271,12 +271,13 @@ of updating. These additional options are also implemented:
.TP
\f[CBI]file=\fP\f[CI]filename\fP
The file containing the archived chroot environment (mandatory). This must be
-a tar (tape archive), optionally compressed with gzip or bzip2. The file
-extensions used to determine the type are are \fI.tar\fP, \fI.tar.gz\fP,
-\fI.tar.bz2\fP, \fI.tgz\fP, and \fI.tbz\fP. This file must be owned by the
-root user, and not be writable by other. Note that zip archives are no longer
-supported; zip was not able to archive named pipes and device nodes, so was not
-suitable for archiving chroots.
+a tar (tape archive), optionally compressed with gzip, bzip2, xz, lzop or lz4.
+The file extensions used to determine the type are are \fI.tar\fP,
+\fI.tar.gz\fP, \fI.tar.bz2\fP, \fI.tar.xz\fP, \fI.tar.lzop\fP, \fI.tar.lz4\fP,
+\fI.tgz\fP, \fI.tbz\fP, \fI.txz\fP, \fI.tzo\fP and \fI.tlz4\fP. This file must
+be owned by the root user, and not be writable by other. Note that zip
+archives are no longer supported; zip was not able to archive named pipes and
+device nodes, so was not suitable for archiving chroots.
.TP
\f[CBI]location=\fP\f[CI]path\fP
This is the path to the chroot \fIinside\fP the archive. For example, if the

View File

@ -1,85 +0,0 @@
From: =?utf-8?q?Rapha=C3=ABl_Hertzog?= <hertzog@debian.org>
Date: Sun, 16 Aug 2015 17:53:37 +0200
Subject: GCC5 fixes on regexes
Applied-Upstream: 1.9.11
Origin: upstream
Bug: https://github.com/codelibre-net/schroot/pull/4
---
cmake/regex-checks.cmake | 10 ++++++++++
test/sbuild-keyfile.cc | 2 +-
test/sbuild-regex.cc | 20 ++++++++++++++++++++
3 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/cmake/regex-checks.cmake b/cmake/regex-checks.cmake
index d0bb211..60507ec 100644
--- a/cmake/regex-checks.cmake
+++ b/cmake/regex-checks.cmake
@@ -30,6 +30,16 @@ int main() {
if (${namespace}_match(fail, bar)) return 11;
if (${namespace}_match(fail, chk)) return 12;
+ // Checks for broken support in GCC 4.9 and 5.1
+ ${namespace} range1(\"^[a-z0-9][a-z0-9-]*\$\", ${namespace}::extended);
+ ${namespace} range2(\"^[a-z0-9][-a-z0-9]*\$\", ${namespace}::extended);
+ if (!${namespace}_match(test, range1)) return 13;
+ if (!${namespace}_match(test, range2)) return 14;
+ if (!${namespace}_match(\"a-\", range1)) return 15;
+ if (!${namespace}_match(\"a-\", range2)) return 16;
+ if (${namespace}_match(\"-a\", range1)) return 17;
+ if (${namespace}_match(\"-a\", range2)) return 18;
+
return 0;
}"
${outvar})
diff --git a/test/sbuild-keyfile.cc b/test/sbuild-keyfile.cc
index cf4b2f8..7a14f84 100644
--- a/test/sbuild-keyfile.cc
+++ b/test/sbuild-keyfile.cc
@@ -93,7 +93,7 @@ public:
test_construction_stream()
{
std::ifstream strm(TESTDATADIR "/keyfile.ex1");
- CPPUNIT_ASSERT(strm);
+ CPPUNIT_ASSERT(!!strm);
sbuild::keyfile k(strm);
}
diff --git a/test/sbuild-regex.cc b/test/sbuild-regex.cc
index 915e915..a8520c5 100644
--- a/test/sbuild-regex.cc
+++ b/test/sbuild-regex.cc
@@ -33,6 +33,8 @@ class test_regex : public TestCase
CPPUNIT_TEST(test_output);
CPPUNIT_TEST(test_input);
CPPUNIT_TEST(test_match);
+ CPPUNIT_TEST(test_match_bracket1);
+ CPPUNIT_TEST(test_match_bracket2);
CPPUNIT_TEST_EXCEPTION(test_input_fail, std::regex_error);
CPPUNIT_TEST_SUITE_END();
@@ -88,6 +90,24 @@ public:
}
void
+ test_match_bracket1()
+ {
+ sbuild::regex r("^[a-z0-9][a-z0-9-]*$");
+ CPPUNIT_ASSERT(sbuild::regex_search("foobar", r));
+ CPPUNIT_ASSERT(sbuild::regex_search("a-", r));
+ CPPUNIT_ASSERT(!sbuild::regex_search("-a", r));
+ }
+
+ void
+ test_match_bracket2()
+ {
+ sbuild::regex r("^[a-z0-9][-a-z0-9]*$");
+ CPPUNIT_ASSERT(sbuild::regex_search("foobar", r));
+ CPPUNIT_ASSERT(sbuild::regex_search("a-", r));
+ CPPUNIT_ASSERT(!sbuild::regex_search("-a", r));
+ }
+
+ void
test_input_fail()
{
sbuild::regex r;

View File

@ -1,54 +0,0 @@
From: Felipe Sateler <ffsateler@debian.org>
Date: Sat, 23 May 2015 17:00:30 -0300
Subject: Support union mounts with overlay, as in Linux 4.0
Bug: https://github.com/codelibre-net/schroot/issues/1
Signed-off-by: Felipe Sateler <ffsateler@debian.org>
Signed-off-by: Antonio Terceiro <terceiro@debian.org>
---
etc/setup.d/10mount | 3 +++
man/schroot.conf.5.man | 4 ++--
sbuild/sbuild-chroot-facet-union.cc | 1 +
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/etc/setup.d/10mount b/etc/setup.d/10mount
index bbfe118..04757c3 100755
--- a/etc/setup.d/10mount
+++ b/etc/setup.d/10mount
@@ -122,6 +122,9 @@ do_mount_fs_union()
overlayfs)
CHROOT_UNION_MOUNT_OPTIONS="lowerdir=${CHROOT_UNION_UNDERLAY_DIRECTORY},upperdir=${CHROOT_UNION_OVERLAY_DIRECTORY}"
;;
+ overlay)
+ mkdir -p ${CHROOT_UNION_OVERLAY_DIRECTORY}/upper ${CHROOT_UNION_OVERLAY_DIRECTORY}/work
+ CHROOT_UNION_MOUNT_OPTIONS="lowerdir=${CHROOT_UNION_UNDERLAY_DIRECTORY},upperdir=${CHROOT_UNION_OVERLAY_DIRECTORY}/upper,workdir=${CHROOT_UNION_OVERLAY_DIRECTORY}/work"
esac
fi
diff --git a/man/schroot.conf.5.man b/man/schroot.conf.5.man
index dc2dc5f..a5bf0ed 100644
--- a/man/schroot.conf.5.man
+++ b/man/schroot.conf.5.man
@@ -447,8 +447,8 @@ optional.
.TP
\f[CBI]union\-type=\fP\f[CI]type\fP
Set the union filesystem type. Currently supported filesystems are
-\[oq]aufs\[cq], \[oq]overlayfs\[cq] and \[oq]unionfs\[cq]. The default is
-\[oq]none\[cq], which disables this feature.
+\[oq]aufs\[cq], \[oq]overlayfs\[cq], \[oq]overlay\[cq] (as of Linux 4.0+) and
+\[oq]unionfs\[cq]. The default is \[oq]none\[cq], which disables this feature.
.TP
\f[CBI]union\-mount\-options=\fP\f[CI]options\fP
Union filesystem mount options (branch configuration), used for mounting the
diff --git a/sbuild/sbuild-chroot-facet-union.cc b/sbuild/sbuild-chroot-facet-union.cc
index b5d8e5e..e1f11b6 100644
--- a/sbuild/sbuild-chroot-facet-union.cc
+++ b/sbuild/sbuild-chroot-facet-union.cc
@@ -136,6 +136,7 @@ void
chroot_facet_union::set_union_type (std::string const& type)
{
if (type == "aufs" ||
+ type == "overlay" ||
type == "overlayfs" ||
type == "unionfs" ||
type == "none")

View File

@ -1,30 +0,0 @@
From b85966683ae3b216333b2691fbd2ab84ab4e3ad4 Mon Sep 17 00:00:00 2001
From: Dima Kogan <dima@secretsauce.net>
Date: Sat, 2 Jul 2016 14:56:15 -0700
Subject: [PATCH] Unmount everything that we can, instead of giving up at the
first failure
---
etc/setup.d/10mount | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
--- a/etc/setup.d/10mount
+++ b/etc/setup.d/10mount
@@ -93,12 +93,15 @@ do_umount_all()
( flock 9
mounts="$("$LIBEXEC_DIR/schroot-listmounts" -m "$1")"
+ anyfailed=""
if [ "x$mounts" != 'x' ]; then
echo "$mounts" |
while read mountloc; do
info "Unmounting $mountloc"
- umount "$mountloc" || exit 1
- done || exit 1
+ umount "$mountloc" || anyfailed="yes"
+ done
+
+ [ -z "$anyfailed" ] || exit 1
fi
) 9>"/var/lock/schroot/umount"
else

View File

@ -1,26 +0,0 @@
Date: Sun, 28 Feb 2021 13:31:10 +0300
From: Michael Tokarev <mjt@tls.msk.ru>
Subject: schroot-setup: create parent directory for binfmt interpreter (#983087)
Bug-Debian: http://bugs.debian.org/983087
Currently schroot-setu (/etc/setup.d/15binfmt) mounts foreign binfmt
interpreter from host into the chroot. The problem is that the interpreter
could be in a directory which is not present in the chroot being created.
Ensure the parent directory exists before trying to bind-mount the
interpreter.
For qemu-based foreign chroots this whole thing isn't necessary with
the introduction of the F binfmt-misc flag (fix_binary), but it wont
hurt anyway. Also, the current method only works for binfmt-support
package and not for other ways to register binfmt-misc interpreters,
such as systemd way or direct/manual registration.
diff --git a/etc/setup.d/15binfmt b/etc/setup.d/15binfmt
index ad1776b2..ccd3776d 100644
--- a/etc/setup.d/15binfmt
+++ b/etc/setup.d/15binfmt
@@ -42,3 +42,3 @@ for emulator in $(update-binfmts --find "$shell"); do
else
- [ -e "$dst" ] || touch "$dst"
+ [ -e "$dst" ] || { mkdir -p "$(dirname "$dst")"; touch "$dst"; }
mount --bind "$emulator" "$dst"

View File

@ -1,46 +0,0 @@
--- schroot-1.6.10.orig/CMakeLists.txt
+++ schroot-1.6.10/CMakeLists.txt
@@ -96,7 +96,7 @@
# Configure testing
SET(CMAKE_REQUIRED_LIBRARIES_SAVE ${CMAKE_REQUIRED_LIBRARIES})
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} cppunit)
-check_cxx_source_runs(
+check_cxx_source_compiles(
"#include <cppunit/ui/text/TestRunner.h>
int main() {
--- schroot-1.6.10.orig/cmake/regex-checks.cmake
+++ schroot-1.6.10/cmake/regex-checks.cmake
@@ -3,7 +3,23 @@
function(regex_test namespace header library outvar outlib)
set(CMAKE_REQUIRED_LIBRARIES_SAVE ${CMAKE_REQUIRED_LIBRARIES})
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${library})
- check_cxx_source_runs(
+
+ if (CMAKE_CROSSCOMPILING)
+ message(WARNING "Using simplified regex check for cross compilation. Assuming that regex implementations work correctly.")
+ check_cxx_source_compiles(
+"#include <${header}>
+
+int main() {
+ ${namespace} foo(\"x\");
+ ${namespace} bar(\"x\", ${namespace}::extended);
+ std::string test(\"x\");
+ ${namespace}_search(test, foo);
+ ${namespace}_match(test, foo);
+ return 0;
+}"
+${outvar})
+ else(CMAKE_CROSSCOMPILING)
+ check_cxx_source_runs(
"#include <${header}>
#include <iostream>
@@ -43,6 +59,7 @@
return 0;
}"
${outvar})
+ endif(CMAKE_CROSSCOMPILING)
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_SAVE})

1
dead.package Normal file
View File

@ -0,0 +1 @@
Orphaned for 6+ weeks

View File

@ -1,25 +0,0 @@
Description: Fix bash completion
Author: Raphaël Hertzog <hertzog@debian.org>
Bug: https://gitlab.com/codelibre/schroot/issues/24
Bug-Debian: https://bugs.debian.org/855283
Last-Update: 2017-06-06
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/etc/bash_completion/schroot
+++ b/etc/bash_completion/schroot
@@ -15,7 +15,7 @@
# along with this program. If not, see
# <http://www.gnu.org/licenses/>.
-have schroot &&
+_have schroot &&
_schroot()
{
local cur prev options
@@ -33,5 +33,4 @@ _schroot()
COMPREPLY=( $(compgen -W "$options" -- $cur) )
fi
return 0
-}
-complete -F _schroot schroot
+} && complete -F _schroot schroot

View File

@ -1,39 +0,0 @@
Description: Fix logic in 15killprocs
The code that tried to identify processes running in a chroot
was failing when the chroot path contained a symlink (/var/run)
since the kernel reports a canonicalized name.
.
Thanks to Christoph Biedl <debian.axhn@manchmal.in-ulm.de> for the
analysis.
Author: Raphaël Hertzog <hertzog@debian.org>
Bug-Debian: http://bugs.debian.org/841699
Last-Update: 2017-01-09
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
diff --git a/etc/setup.d/15killprocs b/etc/setup.d/15killprocs
index 8630e89a..a37c4555 100755
--- a/etc/setup.d/15killprocs
+++ b/etc/setup.d/15killprocs
@@ -39,6 +39,7 @@ kill_proc()
# $1: mount base location
do_kill_all()
{
+ chroot_path=$(realpath "$1")
if [ -z "$1" ]; then
fatal "No path for finding stray processes: not reaping processes in chroot"
fi
@@ -48,11 +49,11 @@ do_kill_all()
while read pid; do
# Check if process root are the same device/inode as chroot
# root (for efficiency)
- if [ /proc/"$pid"/root -ef "$1" ]; then
+ if [ /proc/"$pid"/root -ef "$chroot_path" ]; then
# Check if process and chroot root are the same (may be
# different even if device/inode match).
- root=$(readlink /proc/"$pid"/root || true)
- if [ "$root" = "$1" ]; then
+ root=$(readlink --canonicalize /proc/"$pid"/root || true)
+ if [ "$root" = "$chroot_path" ]; then
exe=$(readlink /proc/"$pid"/exe || true)
info "Killing left-over pid $pid (${exe##$1})"
info " Sending SIGTERM to pid $pid"

View File

@ -1,16 +0,0 @@
Description: Fix test suite when /bin is a symlink to /usr/bin
Author: Raphaël Hertzog <hertzog@debian.org>
Last-Update: 2017-01-09
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/test/sbuild-util.cc
+++ b/test/sbuild-util.cc
@@ -84,7 +84,7 @@ public:
void test_find_program_in_path()
{
- std::string path("/usr/local/bin:/usr/bin:/bin");
+ std::string path("/bin:/usr/bin:/usr/local/bin");
CPPUNIT_ASSERT(sbuild::find_program_in_path("sh", path, "") == "/bin/sh");
CPPUNIT_ASSERT(sbuild::find_program_in_path("sed", path, "") == "/bin/sed");
}

View File

@ -1,119 +0,0 @@
From: Chris Leick <c.leick@vollbio.de>
Date: Tue, 25 Nov 2014 21:34:20 +0100
Subject: schroot: [INTL:de] Updated German PO translation
There's a typo (marked with »FIXME« in the po file).
Date: Wed, 26 Nov 2014 15:26:13 +0000
From: Roger Leigh <rleigh@codelibre.net>
Many thanks, much appreciated!
I've committed this including the typo fix--thanks for pointing it out.
Bug-Debian: http://bugs.debian.org/771001
Origin: upstream
Index: schroot-1.6.10/man/dchroot.1.man
===================================================================
--- schroot-1.6.10.orig/man/dchroot.1.man
+++ schroot-1.6.10/man/dchroot.1.man
@@ -277,11 +277,11 @@ original \fBdchroot\fP by David Kimdon \
independent implementation.
.so copyright.man
.SH SEE ALSO
-.BR schroot (1),
.BR sbuild (1),
+.BR schroot (1),
.BR chroot (2),
-.BR schroot-setup (5),
.BR schroot.conf (5).
+.BR schroot-setup (5),
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
Index: schroot-1.6.10/man/schroot.1.man
===================================================================
--- schroot-1.6.10.orig/man/schroot.1.man
+++ schroot-1.6.10/man/schroot.1.man
@@ -695,10 +695,10 @@ Directory used for unpacking file chroot
.BR dchroot (1),
.BR sbuild (1),
.BR chroot (2),
-.BR run\-parts (8),
+.BR schroot.conf (5).
.BR schroot\-setup (5),
.BR schroot\-faq (7),
-.BR schroot.conf (5).
+.BR run\-parts (8),
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
Index: schroot-1.6.10/man/schroot.conf.5.man
===================================================================
--- schroot-1.6.10.orig/man/schroot.conf.5.man
+++ schroot-1.6.10/man/schroot.conf.5.man
@@ -154,7 +154,7 @@ Note that the script will be sourced onc
and must be idempotent.
.IP
All the default settings in this file are now settable using configuration keys
-in \fIschroot.conf\fP, as detailed below. Existing configuration should be
+in \fIschroot.conf\fP, as detailed below. Existing configurations should be
modified to use these keys in place of this file. See
.BR schroot-script-config (5)
for further details. This type of setup script configuration file is no longer
@@ -272,7 +272,7 @@ of updating. These additional options ar
\f[CBI]file=\fP\f[CI]filename\fP
The file containing the archived chroot environment (mandatory). This must be
a tar (tape archive), optionally compressed with gzip, bzip2, xz, lzop or lz4.
-The file extensions used to determine the type are are \fI.tar\fP,
+The file extensions used to determine the type are \fI.tar\fP,
\fI.tar.gz\fP, \fI.tar.bz2\fP, \fI.tar.xz\fP, \fI.tar.lzop\fP, \fI.tar.lz4\fP,
\fI.tgz\fP, \fI.tbz\fP, \fI.txz\fP, \fI.tzo\fP and \fI.tlz4\fP. This file must
be owned by the root user, and not be writable by other. Note that zip
Index: schroot-1.6.10/man/schroot-faq.7.man
===================================================================
--- schroot-1.6.10.orig/man/schroot-faq.7.man
+++ schroot-1.6.10/man/schroot-faq.7.man
@@ -104,7 +104,7 @@ In consequence, it's not possible to run
schroot. You can however do it if you create a session with
\fI\-\-begin\-session\fP and then run the d\[ae]mon with
\fI\-\-run\-session\fP. It's your responsibility to end the session with
-\fI\-\-end\-session\fP when the daemon has terminated or you no longer need it.
+\fI\-\-end\-session\fP when the d\[ae]mon has terminated or you no longer need it.
.SS How do I manually cleaning up a broken session?
Occasionally, it may be necessary to manually clean up sessions. If something
changes on your system which causes the setup scripts to fail when ending a
@@ -255,10 +255,10 @@ the schroot-1.4 branch.
.so copyright.man
.SH SEE ALSO
.BR dchroot (1),
-.BR schroot (1),
.BR sbuild (1),
-.BR schroot\-setup (5),
+.BR schroot (1),
.BR schroot.conf (5).
+.BR schroot\-setup (5),
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
Index: schroot-1.6.10/man/schroot-setup.5.man
===================================================================
--- schroot-1.6.10.orig/man/schroot-setup.5.man
+++ schroot-1.6.10/man/schroot-setup.5.man
@@ -143,7 +143,6 @@ These variables are only set for directl
.TP
CHROOT_MOUNT_DEVICE
The device to mount containing the chroot.
-mounting.
.TP
CHROOT_MOUNT_OPTIONS
Options to pass to
@@ -169,7 +168,7 @@ Union filesystem underlay directory (rea
.TP
CHROOT_DEVICE
The device containing the chroot root filesystem. This is usually, but not
-necessarily, the device which will be mounted. For example, an LVM snapshot
+necessarily, the device which will be mounted. For example, for a LVM snapshot
this will be the original logical volume.
.SS LVM snapshot variables
.TP

View File

@ -1,20 +0,0 @@
From: Chris Lamb <lamby@debian.org>
Date: Thu, 24 Sep 2020 10:42:22 +0100
Subject: Make the documentation build reproducibly
---
man/CMakeLists.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt
index 44958cb..ecdd0fc 100644
--- a/man/CMakeLists.txt
+++ b/man/CMakeLists.txt
@@ -150,6 +150,7 @@ foreach(manpage_source ${manpage_sources})
add_custom_command(OUTPUT ${manpage}
COMMAND ${SOELIM_EXECUTABLE}
+ -r
${manpage_includes}
< "${manpage_source_file}"
> "${manpage}"

View File

@ -1,12 +0,0 @@
--- ./etc/setup.d/common-data.orig 2010-08-23 09:54:15.000000000 -0700
+++ ./etc/setup.d/common-data 2010-08-23 09:52:22.000000000 -0700
@@ -18,6 +18,9 @@
# Common data for use in schroot setup scripts
+# Make sure /sbin directories are in the path
+PATH=$PATH:/sbin:/usr/sbin
+
# Script arguments
STAGE="$1"
STATUS="$2"

View File

@ -1,38 +0,0 @@
--- ./sbuild/sbuild-util.cc.orig 2018-05-05 12:39:09.706894741 -0400
+++ ./sbuild/sbuild-util.cc 2018-05-05 12:41:46.963886076 -0400
@@ -631,7 +631,7 @@ sbuild::passwd::query_uid (uid_t uid)
::passwd *pwd_result;
while ((error = getpwuid_r(uid, this,
- &buffer[0], buffer.capacity(),
+ buffer.data(), buffer.capacity(),
&pwd_result)))
{
size <<= 1;
@@ -654,7 +654,7 @@ sbuild::passwd::query_name (const char *
::passwd *pwd_result;
while ((error = getpwnam_r(name, this,
- &buffer[0], buffer.capacity(),
+ buffer.data(), buffer.capacity(),
&pwd_result)))
{
size <<= 1;
@@ -740,7 +740,7 @@ sbuild::group::query_gid (gid_t gid)
::group *grp_result;
while ((error = getgrgid_r(gid, this,
- &buffer[0], buffer.capacity(),
+ buffer.data(), buffer.capacity(),
&grp_result)))
{
size <<= 1;
@@ -763,7 +763,7 @@ sbuild::group::query_name (const char *n
::group *grp_result;
while ((error = getgrnam_r(name, this,
- &buffer[0], buffer.capacity(),
+ buffer.data(), buffer.capacity(),
&grp_result)))
{
size <<= 1;

View File

@ -1,112 +0,0 @@
From 624f0adfe60ea8299589f0474bc77bba4bcebd81 Mon Sep 17 00:00:00 2001
From: Tyler Hicks <tyhicks@canonical.com>
Date: Tue, 27 Oct 2015 10:52:59 -0500
Subject: [PATCH] schroot-mount: Make bind mounts use private mount propagation
When creating a bind mount, on a Linux system, mark the target as
private. When creating a recursive bind mount, on a Linux system, mark
the target as recursively private.
This change fixes issues around shared mount points being bind mounted
into a schroot and then when the schroot session is tore down, the mount
point being unmounted in both the schroot and in the host environment.
For example, if the schroot fstab file contains the following line:
/home /home none rw,rbind 0 0
A user's home directory mounted at /home/$USER is unmounted in both the
schroot and host when the schroot sessions is ended without this change.
Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
---
bin/schroot-mount/schroot-mount-main.cc | 43 +++++++++++++++++++++++++++++++++
bin/schroot-mount/schroot-mount-main.h | 10 ++++++++
2 files changed, 53 insertions(+)
diff --git a/bin/schroot-mount/schroot-mount-main.cc b/bin/schroot-mount/schroot-mount-main.cc
index 327f5ed..918d246 100644
--- a/bin/schroot-mount/schroot-mount-main.cc
+++ b/bin/schroot-mount/schroot-mount-main.cc
@@ -21,6 +21,10 @@
#include <sbuild/sbuild-mntstream.h>
#include <sbuild/sbuild-util.h>
+#if defined (__linux__)
+#include <sbuild/sbuild-regex.h>
+#endif
+
#include "schroot-mount-main.h"
#include <cerrno>
@@ -214,7 +218,46 @@ main::action_mount ()
if (status)
exit(status);
}
+
+ make_mount_private(entry.options, directory);
+ }
+}
+
+void
+main::make_mount_private (const std::string& options,
+ const std::string& mountpoint)
+{
+#if defined (__linux__)
+ static sbuild::regex bind("(^|,)(|r)bind(,|$)");
+ static sbuild::regex propagation("(^|,)(|r)(shared|slave|private|unbindable)(,|$)");
+
+ if (regex_search(options, bind) && !regex_search(options, propagation))
+ {
+ static sbuild::regex rbind("(^|,)rbind(,|$)");
+ bool recursive = regex_search(options, rbind);
+
+ sbuild::log_debug(sbuild::DEBUG_INFO)
+ << boost::format("Making %1% mount point %2%private")
+ % mountpoint
+ % (recursive ? "recursively " : "")
+ << std::endl;
+
+ if (!opts->dry_run)
+ {
+ sbuild::string_list command;
+ command.push_back("/bin/mount");
+ if (opts->verbose)
+ command.push_back("-v");
+ command.push_back(recursive ? "--make-rprivate" : "--make-private");
+ command.push_back(mountpoint);
+
+ int status = run_child(command[0], command, sbuild::environment());
+
+ if (status)
+ exit(status);
+ }
}
+#endif
}
int
diff --git a/bin/schroot-mount/schroot-mount-main.h b/bin/schroot-mount/schroot-mount-main.h
index 06c0333..371b713 100644
--- a/bin/schroot-mount/schroot-mount-main.h
+++ b/bin/schroot-mount/schroot-mount-main.h
@@ -67,6 +67,16 @@ namespace schroot_mount
action_mount ();
/**
+ * Make a bind mount use private mount propagation (Linux-specific).
+ *
+ * @param options the mount options
+ * @param mountpoint the mountpiont to make private
+ */
+ void
+ make_mount_private (const std::string& options,
+ const std::string& mountpoint);
+
+ /**
* Run the command specified by file (an absolute pathname), using
* command and env as the argv and environment, respectively.
*
--
2.5.0

View File

@ -1,274 +0,0 @@
From c051ee6ef19d0592baac099c19dc485b42bd1771 Mon Sep 17 00:00:00 2001
From: Tyler Hicks <tyhicks@canonical.com>
Date: Tue, 28 Jul 2015 01:01:12 -0500
Subject: [PATCH] schroot-mount: Resolve mount destinations while chrooted
The schroot-mount binary was attempting to use realpath(3) from outside
of the chroot to resolve mount destination paths inside of the chroot.
It would then take the resolved path and prepend it with the path to the
chroot in an attempt to enforce that symlink resolution will always end
up inside of the chroot.
One example of why this approach isn't sufficient is that when
/<chroot>/dev/shm/ is the mount destination but it is a symlink to
/run/shm and the host's /run/shm is a symlink to /dev/shm. The resolved
path will end up being /<chroot>/dev/shm/ and, due to mount following
symlinks, the host's /dev/shm will be mounted over.
To fix the path resolution issue, this patch first resolves the path to
the chroot base path, then forks and calls chroot(2) on that path, then
resolves the path to the mount destination inside the chroot. Finally,
the resolved chroot base path and the resolved mount destination path
are combined to create the fully resolved path used for mounting.
Bug-Debian: https://bugs.debian.org/728096
Bug-Ubuntu: https://launchpad.net/bugs/1438942
Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
---
bin/schroot-mount/schroot-mount-main.cc | 141 ++++++++++++++++++++++++++------
bin/schroot-mount/schroot-mount-main.h | 29 +++++--
2 files changed, 142 insertions(+), 28 deletions(-)
--- a/bin/schroot-mount/schroot-mount-main.cc
+++ b/bin/schroot-mount/schroot-mount-main.cc
@@ -34,6 +34,7 @@
#include <ctime>
#include <iostream>
#include <locale>
+#include <poll.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -63,8 +64,14 @@ namespace
{
emap(main::CHILD_FORK, N_("Failed to fork child")),
emap(main::CHILD_WAIT, N_("Wait for child failed")),
+ // TRANSLATORS: %1% = directory
+ emap(main::CHROOT, N_("Failed to change root to directory %1%")),
+ emap(main::DUP, N_("Failed to duplicate file descriptor")),
// TRANSLATORS: %1% = command name
emap(main::EXEC, N_("Failed to execute “%1%”")),
+ emap(main::PIPE, N_("Failed to create pipe")),
+ emap(main::POLL, N_("Failed to poll file descriptor")),
+ emap(main::READ, N_("Failed to read file descriptor")),
emap(main::REALPATH, N_("Failed to resolve path “%1%”"))
};
@@ -92,23 +99,14 @@ main::~main ()
}
std::string
-main::resolve_path (std::string const& mountpoint)
+main::resolve_path_chrooted (std::string const& mountpoint)
{
- // Ensure entry has a leading / to prevent security hole where
- // mountpoint might be outside the chroot.
- std::string absmountpoint(mountpoint);
- if (absmountpoint.empty() || absmountpoint[0] != '/')
- absmountpoint = std::string("/") + absmountpoint;
-
- char *resolved_path = realpath(opts->mountpoint.c_str(), 0);
- if (!resolved_path)
- throw error(opts->mountpoint, REALPATH, strerror(errno));
- std::string basepath(resolved_path);
- std::free(resolved_path);
+ std::string directory(mountpoint);
+ if (directory.empty() || directory[0] != '/')
+ directory = std::string("/") + directory;
- std::string directory(opts->mountpoint + absmountpoint);
// Canonicalise path to remove any symlinks.
- resolved_path = realpath(directory.c_str(), 0);
+ char *resolved_path = realpath(directory.c_str(), 0);
if (resolved_path == 0)
{
// The path is either not present or is an invalid link. If
@@ -128,13 +126,13 @@ main::resolve_path (std::string const& m
else
{
// Try validating the parent directory.
- sbuild::string_list dirs = sbuild::split_string(mountpoint, "/");
+ sbuild::string_list dirs = sbuild::split_string(directory, "/");
if (dirs.size() > 1) // Recurse if possible, otherwise continue
{
std::string saveddir = *dirs.rbegin();
dirs.pop_back();
- std::string newpath(resolve_path(sbuild::string_list_to_string(dirs, "/")));
+ std::string newpath(resolve_path_chrooted(sbuild::string_list_to_string(dirs, "/")));
directory = newpath + "/" + saveddir;
}
}
@@ -144,16 +142,113 @@ main::resolve_path (std::string const& m
directory = resolved_path;
std::free(resolved_path);
}
- // If the link was absolute (i.e. points somewhere on the host,
- // outside the chroot, make sure that this is modified to be
- // inside.
- if (directory.size() < basepath.size() ||
- directory.substr(0,basepath.size()) != basepath)
- directory = basepath + directory;
return directory;
}
+std::string
+main::resolve_path (std::string const& mountpoint)
+{
+ std::string stdout_buf;
+ int stdout_pipe[2];
+ int exit_status = 0;
+ pid_t pid;
+
+ try
+ {
+ if (pipe(stdout_pipe) < 0)
+ throw error(PIPE, strerror(errno));
+
+ if ((pid = fork()) == -1)
+ {
+ throw error(CHILD_FORK, strerror(errno));
+ }
+ else if (pid == 0)
+ {
+ try
+ {
+ // Set up pipes for stdout
+ if (dup2(stdout_pipe[1], STDOUT_FILENO) < 0)
+ throw error(DUP, strerror(errno));
+
+ close(stdout_pipe[0]);
+ close(stdout_pipe[1]);
+
+ char *resolved_path = realpath(opts->mountpoint.c_str(), 0);
+ if (!resolved_path)
+ throw error(opts->mountpoint, REALPATH, strerror(errno));
+
+ std::string basepath(resolved_path);
+ std::free(resolved_path);
+
+ if (chroot(basepath.c_str()) < 0)
+ throw error(basepath, CHROOT, strerror(errno));
+
+ std::cout << basepath + resolve_path_chrooted(mountpoint);
+ std::cout.flush();
+ _exit(EXIT_SUCCESS);
+ }
+ catch (std::exception const& e)
+ {
+ sbuild::log_exception_error(e);
+ }
+ catch (...)
+ {
+ sbuild::log_error()
+ << _("An unknown exception occurred") << std::endl;
+ }
+ _exit(EXIT_FAILURE);
+ }
+
+ // Log stdout
+ close(stdout_pipe[1]);
+
+ struct pollfd pollfd;
+ pollfd.fd = stdout_pipe[0];
+ pollfd.events = POLLIN;
+ pollfd.revents = 0;
+
+ char buffer[BUFSIZ];
+
+ while (1)
+ {
+ int status;
+
+ if ((status = poll(&pollfd, 1, -1)) < 0)
+ throw error(POLL, strerror(errno));
+
+ int outdata = 0;
+
+ if (pollfd.revents & POLLIN)
+ {
+ if ((outdata = read(pollfd.fd, buffer, BUFSIZ)) < 0
+ && errno != EINTR)
+ throw error(READ, strerror(errno));
+
+ if (outdata)
+ stdout_buf += std::string(&buffer[0], outdata);
+ }
+
+ if (outdata == 0) // pipe closed
+ break;
+ }
+
+ close(stdout_pipe[0]);
+ wait_for_child(pid, exit_status);
+ }
+ catch (error const& e)
+ {
+ close(stdout_pipe[0]);
+ close(stdout_pipe[1]);
+ throw;
+ }
+
+ if (exit_status)
+ exit(exit_status);
+
+ return stdout_buf;
+}
+
void
main::action_mount ()
{
--- a/bin/schroot-mount/schroot-mount-main.h
+++ b/bin/schroot-mount/schroot-mount-main.h
@@ -42,7 +42,12 @@ namespace schroot_mount
{
CHILD_FORK, ///< Failed to fork child.
CHILD_WAIT, ///< Wait for child failed.
+ CHROOT, ///< Failed to change root.
+ DUP, ///< Failed to duplicate file descriptor.
EXEC, ///< Failed to execute.
+ PIPE, ///< Failed to create pipe.
+ POLL, ///< Failed to poll file descriptor.
+ READ, ///< Failed to read file descriptor.
REALPATH ///< Failed to resolve path.
};
@@ -91,17 +96,31 @@ namespace schroot_mount
sbuild::environment const& env);
/**
- * Ensure that the mountpoint is a valid absolute path inside the
- * chroot. This is to avoid absolute or relative symlinks
- * pointing outside the chroot causing filesystems to be mounted
- * on the host. An exception will be thrown if it is not possible
- * to resolve the path.
+ * Ensure that the mountpoint is a valid absolute path. The calling process
+ * must be chrooted before calling this function to avoid resolving
+ * absolute or relative symlinks pointing outside the chroot. An exception
+ * will be thrown if it is not possible to resolve the path.
*
* @param mountpoint the mountpoint to check,
* @returns the validated path.
*/
std::string
+ resolve_path_chrooted (std::string const& mountpoint);
+
+ /**
+ * Ensure that the chroot base path and the mountpoint is a valid absolute
+ * path inside the chroot. This function calls chroot on the resolved
+ * chroot base path before attempting to resolve the mountpoint path inside
+ * of the chroot to avoid absolute or relative symlinks pointing outside
+ * the chroot causing filesystems to be mounted on the host. An exception
+ * will be thrown if it is not possible to resolve the chroot base path or
+ * the mountpoint path.
+ *
+ * @param mountpoint the mountpoint to check,
+ * @returns the validated path.
+ */
+ std::string
resolve_path (std::string const& mountpoint);
/**

View File

@ -1,15 +0,0 @@
--- ./etc/pam/schroot 2008-01-20 16:16:25.000000000 -0800
+++ ./etc/pam/schroot 2008-04-29 10:33:21.000000000 -0700
@@ -26,9 +26,9 @@
# The standard Unix authentication modules, used with
# NIS (man nsswitch) as well as normal /etc/passwd and
# /etc/shadow entries.
-@include common-auth
-@include common-account
-@include common-session
+auth include system-auth
+session include system-auth
+account include system-auth
# Sets up user limits, please uncomment and read /etc/security/limits.conf
# to enable this functionality.

View File

@ -1,8 +0,0 @@
--- schroot-1.6.10/man/po4a.cfg.orig 2020-08-05 11:37:47.784691905 +0100
+++ schroot-1.6.10/man/po4a.cfg 2020-08-05 11:37:55.826742986 +0100
@@ -1,4 +1,4 @@
-[po_directory] po/
+[po_directory] man/po
[po4a_alias:man] man opt:"-M UTF-8 -L UTF-8"

View File

@ -1,19 +0,0 @@
# This is a configuration file for /etc/init.d/schroot; it allows you
# to perform common modifications to the behavior of schroot
# initialization without editing the init script (and thus getting
# prompted by dpkg on upgrades). Note that the defaults defined here
# are not used when invoking the schroot command; to configure schroot
# behaviour have a look at /etc/schroot/* and the schroot manual page
# ("man schroot").
# Action to perform when the service is stopped. By default, we do
# nothing (set to "none"). If all sessions should be automatically
# ended, set to "end". If this is set to "none", START_ACTION should
# probably be set to "recover" to avoid broken sessions on restart.
STOP_ACTION="none"
# What do we want to do with "orphan" sessions when starting or
# restarting? Recover them (leave empty or set to "recover") or just
# end them (set to "end")?
START_ACTION="recover"

View File

@ -1,13 +0,0 @@
[Unit]
Description=Recover schroot sessions
Documentation=man:schroot(1)
RequiresMountsFor=/var/lib/schroot
[Service]
Type=oneshot
ExecStart=/etc/init.d/schroot start
ExecStop=/etc/init.d/schroot stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

View File

@ -1,463 +0,0 @@
%undefine __cmake_in_source_build
Name: schroot
Version: 1.6.10
Release: 23%{?dist}
Summary: Execute commands in a chroot environment
License: GPLv3+
Url: https://tracker.debian.org/pkg/schroot
Source0: http://ftp.de.debian.org/debian/pool/main/s/schroot/%{name}_%{version}.orig.tar.xz
Source1: schroot.service
Source2: schroot.default
Patch0: schroot-pam.patch
Patch1: schroot-default-config-path.patch
Patch3: schroot-gcc8-assert-fix.patch
Patch4: schroot-po4a.patch
#Debian patches
Patch10: Add-support-for-more-compression-formats.patch
Patch11: Add-SESSION_SOURCE-and-CHROOT_SESSION_SOURCE.patch
Patch12: 10mount-Move-mount-directory-to-var-run.patch
Patch13: Support-union-mounts-with-overlay-as-in-Linux-4.0.patch
Patch14: GCC5-fixes-on-regexes.patch
Patch15: schroot-mount-make-bind-mounts-private.patch
Patch16: schroot-mount-resolve-mount-destinations-while-chrooted.patch
Patch17: fix-test-suite-with-usrmerge.patch
Patch18: Unmount-everything-that-we-can-instead-of-giving-up.patch
Patch19: fix-killprocs.patch
Patch20: fix-bash-completion.patch
Patch21: fix_typos_in_schroot_manpage.patch
Patch22: update_czech_schroot_translation.patch
Patch23: update_french_schroot_manpage_translation_2018.patch
Patch24: update_german_schroot_manpage_translation_2018.patch
Patch25: zfs-snapshot-support.patch
Patch26: cross.patch
Patch27: binfmt-parent-dir.patch
Patch28: reproducible-build.patch
BuildRequires: gcc-c++
BuildRequires: pam-devel
BuildRequires: boost-devel
BuildRequires: lockdev-devel
BuildRequires: libuuid-devel
BuildRequires: lvm2-devel
BuildRequires: btrfs-progs
BuildRequires: debootstrap
BuildRequires: cppunit-devel
BuildRequires: fakeroot
BuildRequires: groff
# from Debian control
BuildRequires: cmake3
BuildRequires: po4a >= 0.40
BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: gtest
%description
schroot allows users to execute commands or interactive shells in
different chroots. Any number of named chroots may be created, and
access permissions given to each, including root access for normal
users, on a per-user or per-group basis. Additionally, schroot can
switch to a different user in the chroot, using PAM for
authentication and authorisation. All operations are logged for
security.
Several different types of chroot are supported, including normal
directories in the filesystem, and also block devices. Sessions,
persistent chroots created on the fly from files (tar with optional
compression and zip) and LVM snapshots are also supported.
schroot supports kernel personalities, allowing the programs run
inside the chroot to have a different personality. For example,
running 32-bit chroots on 64-bit systems, or even running binaries
from alternative operating systems such as SVR4 or Xenix.
schroot also integrates with sbuild, to allow building packages with
all supported chroot types, including session-managed chroot types
such as LVM snapshots.
schroot shares most of its options with dchroot, but offers vastly
more functionality.
%prep
%autosetup -p1
%build
# schroot now use cmake
%cmake3 \
-Ddebug=OFF -Ddchroot=OFF -Ddchroot-dsa=OFF \
-Dbash_completion_dir=/usr/share/bash-completion/completions \
-Dlvm-snapshot=ON \
-Dbtrfs-snapshot=ON \
-Duuid=ON \
-DBTRFS_EXECUTABLE=/sbin/btrfs \
-DLVCREATE_EXECUTABLE=/sbin/lvcreate \
-DLVREMOVE_EXECUTABLE=/sbin/lvremove
#-DSCHROOT_LIBEXEC_DIR=/$(LIBDIR)/schroot \
%cmake_build
#make doc
%install
%cmake_install
install -d -m 755 %{buildroot}%{_unitdir}
install -pm644 %{SOURCE1} %{buildroot}%{_unitdir}
install -d -m 755 %{buildroot}%{_sysconfdir}/default
install -pm644 %{SOURCE2} %{buildroot}%{_sysconfdir}/default/schroot
# get rid of uneeded include and library files
rm -rf $RPM_BUILD_ROOT%{_includedir}
rm $RPM_BUILD_ROOT%{_libdir}/pkgconfig/sbuild.pc
#rm -f $RPM_BUILD_ROOT%{_libdir}/libsbuild.la
#rm -f $RPM_BUILD_ROOT%{_libdir}/libsbuild.so*
rm $RPM_BUILD_ROOT%{_libdir}/libsbuild.a
%find_lang %{name}
%check
# cmake3 on epel don't have ctest
%if 0%{?rhel} == 7
fakeroot %cmake test V=1 || :
%else
fakeroot %ctest || :
%endif
%files -f %{name}.lang
%license COPYING
%doc AUTHORS ChangeLog HACKING NEWS README THANKS TODO
%attr (4755, root, root ) %{_bindir}/schroot
%{_sysconfdir}/default/schroot
%dir %{_sysconfdir}/schroot
%dir %{_sysconfdir}/schroot/chroot.d
%config(noreplace) %{_sysconfdir}/schroot/schroot.conf
%config(noreplace) %{_sysconfdir}/schroot/sbuild
%config(noreplace) %{_sysconfdir}/schroot/buildd
%config(noreplace) %{_sysconfdir}/pam.d/schroot
%config(noreplace) %{_sysconfdir}/schroot/default/copyfiles
%config(noreplace) %{_sysconfdir}/schroot/default/fstab
%config(noreplace) %{_sysconfdir}/schroot/default/nssdatabases
%config(noreplace) %{_sysconfdir}/schroot/desktop/copyfiles
%config(noreplace) %{_sysconfdir}/schroot/desktop/fstab
%config(noreplace) %{_sysconfdir}/schroot/desktop/nssdatabases
%config(noreplace) %{_sysconfdir}/schroot/minimal/copyfiles
%config(noreplace) %{_sysconfdir}/schroot/minimal/fstab
%config(noreplace) %{_sysconfdir}/schroot/minimal/nssdatabases
%dir %{_sysconfdir}/schroot/setup.d
%config(noreplace) %{_sysconfdir}/schroot/setup.d/00check
%config(noreplace) %{_sysconfdir}/schroot/setup.d/05btrfs
%config(noreplace) %{_sysconfdir}/schroot/setup.d/05file
%config(noreplace) %{_sysconfdir}/schroot/setup.d/05lvm
%config(noreplace) %{_sysconfdir}/schroot/setup.d/05union
%config(noreplace) %{_sysconfdir}/schroot/setup.d/05zfs
%config(noreplace) %{_sysconfdir}/schroot/setup.d/10mount
%config(noreplace) %{_sysconfdir}/schroot/setup.d/15killprocs
%config(noreplace) %{_sysconfdir}/schroot/setup.d/15binfmt
%config(noreplace) %{_sysconfdir}/schroot/setup.d/20copyfiles
%config(noreplace) %{_sysconfdir}/schroot/setup.d/20nssdatabases
%config(noreplace) %{_sysconfdir}/schroot/setup.d/50chrootname
%config(noreplace) %{_sysconfdir}/schroot/setup.d/70services
%config(noreplace) %{_sysconfdir}/schroot/setup.d/99check
%dir %{_libexecdir}/schroot
%{_libexecdir}/schroot/schroot-listmounts
%{_libexecdir}/schroot/schroot-mount
#{_libexecdir}/schroot/schroot-releaselock
%dir %{_localstatedir}/lib/schroot
%{_localstatedir}/lib/schroot/session
#{_localstatedir}/lib/schroot/mount
%{_datadir}/bash-completion/completions/schroot
%{_datadir}/%{name}/setup/common-config
%{_datadir}/%{name}/setup/common-data
%{_datadir}/%{name}/setup/common-functions
%{_mandir}/man1/schroot.1.gz
%{_mandir}/man5/schroot-script-config.5.gz
%{_mandir}/man5/schroot-setup.5.gz
%{_mandir}/man5/schroot.conf.5.gz
%{_mandir}/man7/schroot-faq.7.gz
%{_mandir}/*/man1/schroot.1.gz
%{_mandir}/*/man5/schroot-script-config.5.gz
%{_mandir}/*/man5/schroot-setup.5.gz
%{_mandir}/*/man5/schroot.conf.5.gz
%{_mandir}/*/man7/schroot-faq.7.gz
%{_unitdir}/schroot.service
%changelog
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed May 04 2022 Thomas Rodgers <trodgers@redhat.com> - 1.6.10-22
- Rebuilt for Boost 1.78
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sat Aug 07 2021 Jonathan Wakely <jwakely@redhat.com> - 1.6.10-20
- Rebuilt for Boost 1.76
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Sun Mar 07 2021 Sérgio Basto <sergio@serjux.com> - 1.6.10-18
- Add more 2 patches from debian
- Clean old files
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Jan 22 2021 Jonathan Wakely <jwakely@redhat.com> - 1.6.10-16
- Rebuilt for Boost 1.75
* Wed Aug 05 2020 Sérgio Basto <sergio@serjux.com> - 1.6.10-15
- Add latest patches from Debian
- Add patch to fix build with newest po4a
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-14
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
- Fix cmake build
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu May 28 2020 Jonathan Wakely <jwakely@redhat.com> - 1.6.10-12
- Rebuilt for Boost 1.73
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jan 25 2019 Jonathan Wakely <jwakely@redhat.com> - 1.6.10-8
- Rebuilt for Boost 1.69
* Wed Jan 23 2019 Sérgio Basto <sergio@serjux.com> - 1.6.10-7
- po4a is now available on ppc64 and we can build schroot
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Jun 18 2018 Sérgio Basto <sergio@serjux.com> - 1.6.10-5
- Fix rpmlint W: install-file-in-docs /usr/share/doc/schroot/INSTALL
* Thu Jun 14 2018 Sérgio Basto <sergio@serjux.com> - 1.6.10-4
- Add config(noreplace) in all files of /etc (#1585406)
* Fri May 11 2018 Sérgio Basto <sergio@serjux.com> - 1.6.10-3
- Make compatible with epel 7
* Wed May 09 2018 Sérgio Basto <sergio@serjux.com> - 1.6.10-2
- Add patch to fix STL assets with gcc 8
* Wed May 02 2018 Sérgio Basto <sergio@serjux.com> - 1.6.10-1
- Update to 1.6.10
- Add from Debian package, BRs, patches and config files
- Switch to cmake
- Modernize spec file
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.6.5-23
- Escape macros in %%changelog
* Tue Jan 23 2018 Jonathan Wakely <jwakely@redhat.com> - 1.6.5-22
- Rebuilt for Boost 1.66
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.5-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.5-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Wed Jul 19 2017 Jonathan Wakely <jwakely@redhat.com> - 1.6.5-19
- Rebuilt for s390x binutils bug
* Tue Jul 04 2017 Jonathan Wakely <jwakely@redhat.com> - 1.6.5-18
- Rebuilt for Boost 1.64
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.5-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.5-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Mon Jan 18 2016 Jonathan Wakely <jwakely@redhat.com> - 1.6.5-15
- Rebuilt for Boost 1.60
* Mon Sep 07 2015 Jonathan Wakely <jwakely@redhat.com> - 1.6.5-14
- Rebuilt for Boost 1.59
* Wed Jul 29 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.5-13
- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159
* Wed Jul 22 2015 David Tardon <dtardon@redhat.com> - 1.6.5-12
- rebuild for Boost 1.58
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.5-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 1.6.5-10
- Rebuilt for GCC 5 C++11 ABI change
* Wed Feb 04 2015 Petr Machata <pmachata@redhat.com> - 1.6.5-9
- Bump for rebuild.
* Fri Jan 30 2015 Zach Carter <os@zachcarter.com> - 1.6.5-8
- Make sure schroot is suid (BZ1045006,BZ1175351)
* Mon Jan 26 2015 Petr Machata <pmachata@redhat.com> - 1.6.5-7
- Rebuild for boost 1.57.0
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.5-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Thu May 22 2014 Petr Machata <pmachata@redhat.com> - 1.6.5-4
- Rebuild for boost 1.55.0
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Sat Jul 27 2013 pmachata@redhat.com - 1.6.5-2
- Rebuild for boost 1.54.0
* Wed Jul 3 2013 Zach Carter <z.carter@f5.com> - 1.6.5-1
- Upstream bump to 1.6.5
- Fix for 'make check' issue regarding missing test/run.parts.ex2 directory.
* Tue May 21 2013 Zach Carter <z.carter@f5.com> - 1.4.25-13
- Enable hardened build flags (BZ #965512 and #965485)
* Sun Feb 10 2013 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 1.4.25-12
- Rebuild for Boost-1.53.0
* Sat Feb 09 2013 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 1.4.25-11
- Rebuild for Boost-1.53.0
* Tue Aug 14 2012 Zach Carter <z.carter@f5.com> - 1.4.25-10
- Rebuild for new boost
* Tue Jul 24 2012 Zach Carter <z.carter@f5.com> - 1.4.25-9
- Bump release to be equal to f17 package
- Add groff to BR
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.25-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Fri May 25 2012 Zach Carter <z.carter@f5.com> - 1.4.25-7
- Add lvm2-devel to BR, enables lvm-snapshot support
* Thu Apr 12 2012 Zach Carter <z.carter@f5.com> - 1.4.25-1
- New upstream version (removes need for gcc47-patch)
- Add BR to enable unit tests, lvm snapshot, btrfs snapshot support (BZ 811856)
- Add schroot-test-sbuild-util-path.patch
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.23-5
- Rebuilt for c++ ABI breakage
* Tue Jan 17 2012 Ralf Corsépius <corsepiu@fedoraproject.org> - 1.4.23-4
- Add schroot-1.4.23-gcc47.patch (Fix mass rebuild FTBFS).
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.23-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Sat Nov 26 2011 Thomas Spura <tomspur@fedoraproject.org> - 1.4.23-2
- rebuild for https://fedoraproject.org/wiki/Features/F17Boost148
* Thu Jul 21 2011 Zach Carter <z.carter@f5.com> - 1.4.23-1
- rebuild for boost 1.47.0
- fix incorrect %%dir tag for binary in %%files section
- update to new upstream 1.4.23 version
* Wed Apr 20 2011 Zach Carter <z.carter@f5.com> - 1.4.21-2
- rebuild for boost 1.46.1
* Mon Mar 14 2011 Zach Carter <z.carter@f5.com> - 1.4.21-1
- rebuild for boost 1.46.1
- update to 1.4.21
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.19-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Mon Feb 07 2011 Zach Carter <z.carter@f5.com> - 1.4.19-1
- rebuild for new boost
- fix boost 1.46 build issue: leaf() function renamed to filename()
- update to 1.4.19
* Sun Feb 06 2011 Thomas Spura <tomspur@fedoraproject.org> - 1.4.10-2
- rebuild for new boost
* Mon Aug 16 2010 Zach Carter <z.carter@f5.com> - 1.4.10-1
- update to 1.4.10
* Fri Jul 30 2010 Zach Carter <z.carter@f5.com> - 1.4.2-6
- rebuild for boost 1.44 update
* Mon Jul 19 2010 Zach Carter <z.carter@f5.com> - 1.4.2-5
- fix configure and configure.ac to correct boost function call
* Fri Jul 16 2010 Zach Carter <z.carter@f5.com> - 1.4.2-4
- cat config.log on failure.
* Fri Jul 16 2010 Zach Carter <z.carter@f5.com> - 1.4.2-3
- Add some LIBS="-l<lib>" statements to fix build break.
* Wed Jul 7 2010 Zach Carter <z.carter@f5.com> - 1.4.2-2
- Licensing Guidelines Update - add license to dchroot subpackage.
* Thu May 27 2010 Zach Carter <z.carter@f5.com> - 1.4.2-1
- update to 1.4.2
- require libuuid-devel
- add /sbin directories to path in /etc/schroot/default/config BZ588200
* Sat Feb 13 2010 Zach Carter <z.carter@f5.com> - 1.2.3-5
- Specifically call out -lboost_system BZ564770
* Fri Jan 22 2010 Rahul Sundaram <sundaram@fedoraproject.org> - 1.2.3-4
- Rebuild for Boost soname bump
- Fix more than one changelog
* Mon Aug 3 2009 Zach Carter <z.carter@f5.com> - 1.2.3-3
- re-add /etc/schroot/chroot.d directory
* Tue Jul 14 2009 Zach Carter <z.carter@f5.com> - 1.2.3-2
- fix "file listed twice" warnings
* Tue Jul 14 2009 Zach Carter <z.carter@f5.com> - 1.2.3-1
- new upstream version
- compile with --enable-static --disable-shared
- improve dchroot description
- define directory ownership
- add + to GPLv3 license definition
* Tue May 5 2009 Zach Carter <z.carter@f5.com> - 1.2.2-2
- schroot-bind-shm patch to fix DOS issue
* Sat Apr 25 2009 Zach Carter <z.carter@f5.com> - 1.2.2-1
- update to 1.2.2
* Wed Nov 5 2008 Zach Carter <z.carter@f5.com> - 1.2.1-2
- move libsbuild subpackage into main package
- remove duplicate doc entries
- disable rpath
- defattr for dchroot files
* Mon Sep 15 2008 Zach Carter <z.carter@f5.com> - 1.2.1-1
- bump version to 1.2.1
* Tue May 20 2008 Zach Carter <z.carter@f5.com> - 1.2.0-1
- move dchroot.1.gz to correct subpackage
- removed superfluous Requires: statements
- moved i18n files into libsbuild subpackage
- removed tmpfs patch
* Mon May 12 2008 Zach Carter <z.carter@f5.com> - 1.2.0-1
- Initial version

11
series
View File

@ -1,11 +0,0 @@
Add-support-for-more-compression-formats.patch
Add-SESSION_SOURCE-and-CHROOT_SESSION_SOURCE.patch
10mount-Move-mount-directory-to-var-run.patch
Support-union-mounts-with-overlay-as-in-Linux-4.0.patch
GCC5-fixes-on-regexes.patch
schroot-mount-make-bind-mounts-private.patch
schroot-mount-resolve-mount-destinations-while-chrooted.patch
fix-test-suite-with-usrmerge.patch
Unmount-everything-that-we-can-instead-of-giving-up.patch
fix-killprocs.patch
fix-bash-completion.patch

View File

@ -1 +0,0 @@
SHA512 (schroot_1.6.10.orig.tar.xz) = 25155989c7811ab4c7bf3cdceaa8d0ffb12f08388143891def96fcd205f1cc401dad9a74f0e9a9ef8610d50174ff8319a8368401431dc87e1a11c0241e61fcbe

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff