tags 635320 + patch
thanks
On Sun, Jul 24, 2011 at 09:20:47PM -0700, Vagrant Cascadian wrote:
> Package: schroot
> Version: 1.4.23-1
> Severity: wishlist
>
> thanks for maintaining schroot!
>
> it would be useful if schroot could set a variable (CHROOT_NAME_ALIAS?) that
> contained the alias used, much like CHROOT_NAME shows which chroot is used:
>
> so in schroot.conf:
>
> [sid]
> aliases=default,unstable,experimental,some-wacky-sid-variant
> description=sid
> type=lvm-snapshot
> device=/dev/prl/schroot_base
> lvm-snapshot-options=--size 2G
> location=/sid
>
> which would allow for a setup.d script:
>
> #!/bin/sh
> if [ "${CHROOT_NAME_ALIAS}" = "experimental" ] ; then
> # some magic that configures experimental chroot here...
> elif [ "${CHROOT_NAME_ALIAS}" = "some-wacky-sid-variant" ] ; then
> # some magic that configures some-wacky-sid-variant chroot here...
> fi
>
>
> this would save the need of having to set up a separate schroot.conf entry
> for
> chroots that contain only minimal differences in the source chroot.
>
> this would also allow options like apt-get dist-upgrade when using schroot
> --all-source-chroots behave with fewer surprises, since it won't treat the
> other entries as having a separate source chroot.
Preliminary support is in the attached patch against git master. I'll
also test and backport for schroot 1.4. Uses CHROOT_ALIAS in setup
scripts; SCHROOT_ALIAS_NAME in user environment.
Regards,
Roger
--
.''`. Roger Leigh
: :' : Debian GNU/Linux http://people.debian.org/~rleigh/
`. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/
`- GPG Public Key: 0x25BFB848 Please GPG sign your mail.
>From 241b823cdefd61d124168030a7556aff0e4ece6b Mon Sep 17 00:00:00 2001
From: Roger Leigh <[email protected]>
Date: Sun, 27 Nov 2011 00:51:13 +0000
Subject: [PATCH] sbuild::chroot_facet_session: Store alias used as
selected_name
Set in environment as CHROOT_ALIAS.
---
bin/schroot/schroot-main-base.cc | 7 ++++-
man/schroot-setup.5.in | 7 +++++
man/schroot.1.in | 5 +++-
sbuild/sbuild-chroot-block-device.cc | 3 +-
sbuild/sbuild-chroot-block-device.h | 1 +
sbuild/sbuild-chroot-btrfs-snapshot.cc | 3 +-
sbuild/sbuild-chroot-btrfs-snapshot.h | 1 +
sbuild/sbuild-chroot-config.cc | 2 +-
sbuild/sbuild-chroot-directory.cc | 3 +-
sbuild/sbuild-chroot-directory.h | 1 +
sbuild/sbuild-chroot-facet-session-clonable.cc | 2 +
sbuild/sbuild-chroot-facet-session-clonable.h | 1 +
sbuild/sbuild-chroot-facet-session.cc | 31 +++++++++++++++++++++++-
sbuild/sbuild-chroot-facet-session.h | 19 ++++++++++++++
sbuild/sbuild-chroot-file.cc | 3 +-
sbuild/sbuild-chroot-file.h | 1 +
sbuild/sbuild-chroot-loopback.cc | 3 +-
sbuild/sbuild-chroot-loopback.h | 1 +
sbuild/sbuild-chroot-lvm-snapshot.cc | 3 +-
sbuild/sbuild-chroot-lvm-snapshot.h | 1 +
sbuild/sbuild-chroot-plain.cc | 1 +
sbuild/sbuild-chroot-plain.h | 1 +
sbuild/sbuild-chroot.h | 6 +++-
sbuild/sbuild-session.cc | 14 +++++++---
sbuild/sbuild-session.h | 10 +++++++-
test/sbuild-chroot-block-device.cc | 4 +++
test/sbuild-chroot-btrfs-snapshot.cc | 2 +
test/sbuild-chroot-directory.cc | 6 ++++
test/sbuild-chroot-file.cc | 2 +
test/sbuild-chroot-loopback.cc | 4 +++
test/sbuild-chroot-lvm-snapshot.cc | 2 +
test/sbuild-chroot.cc | 1 +
test/test-sbuild-chroot.h | 2 +
33 files changed, 136 insertions(+), 17 deletions(-)
diff --git a/bin/schroot/schroot-main-base.cc b/bin/schroot/schroot-main-base.cc
index e49aab7..5046106 100644
--- a/bin/schroot/schroot-main-base.cc
+++ b/bin/schroot/schroot-main-base.cc
@@ -276,7 +276,12 @@ main_base::run_impl ()
{
sbuild::chroot::ptr c = this->config->find_alias("", *pos);
if (c)
- chroot_objects.push_back(c);
+ {
+ sbuild::session::chroot_list::value_type e;
+ e.alias = *pos;
+ e.chroot = c;
+ chroot_objects.push_back(e);
+ }
else
throw error(*pos, CHROOT_NOTFOUND);
}
diff --git a/man/schroot-setup.5.in b/man/schroot-setup.5.in
index 670a54b..2d6ad3e 100644
--- a/man/schroot-setup.5.in
+++ b/man/schroot-setup.5.in
@@ -112,6 +112,13 @@ CHROOT_NAME
The name of the chroot. This is useful for restricting a setup task to a
particular chroot, or set of chroots.
.TP
+CHROOT_ALIAS
+The name of the alias used to select the chroot. This is useful for
+specialising a setup task based upon one of its alternative alias names, or the
+default chroot name. For example, it could be used to specify additional
+sources in \fI/etc/apt/sources.list\fP, such as a stable-security alias for a
+stable chroot, or an experimental alias for an unstable chroot.
+.TP
CHROOT_DESCRIPTION
The description of the chroot.
.TP
diff --git a/man/schroot.1.in b/man/schroot.1.in
index 3277bca..71e8df3 100644
--- a/man/schroot.1.in
+++ b/man/schroot.1.in
@@ -612,7 +612,10 @@ variables are defined: HOME, LOGNAME, PATH, SHELL, TERM (preserved if already
defined), and USER. The environment variables SCHROOT_COMMAND, SCHROOT_USER,
SCHROOT_GROUP, SCHROOT_UID and SCHROOT_GID are set inside the chroot specifying
the command being run, the user name, group name, user ID and group ID,
-respectively.
+respectively. Additionally, the environment variables SCHROOT_SESSION_ID,
+SCHROOT_CHROOT_NAME and SCHROOT_ALIAS_NAME specify the session ID, the original
+chroot name prior to session creation, and the alias used to originally
+identify the selected chroot, respectively.
.PP
The following, potentially dangerous, environment variables are removed for
safety by default: BASH_ENV, CDPATH, ENV, HOSTALIASES, IFS, KRB5_CONFIG,
diff --git a/sbuild/sbuild-chroot-block-device.cc b/sbuild/sbuild-chroot-block-device.cc
index 77ea681..9168695 100644
--- a/sbuild/sbuild-chroot-block-device.cc
+++ b/sbuild/sbuild-chroot-block-device.cc
@@ -72,6 +72,7 @@ chroot_block_device::clone () const
sbuild::chroot::ptr
chroot_block_device::clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const
{
@@ -80,7 +81,7 @@ chroot_block_device::clone_session (std::string const& session_id,
assert(psess);
ptr session(new chroot_block_device(*this));
- psess->clone_session_setup(session, session_id, user, root);
+ psess->clone_session_setup(session, session_id, alias, user, root);
return session;
}
diff --git a/sbuild/sbuild-chroot-block-device.h b/sbuild/sbuild-chroot-block-device.h
index 47d9c6e..45316ae 100644
--- a/sbuild/sbuild-chroot-block-device.h
+++ b/sbuild/sbuild-chroot-block-device.h
@@ -63,6 +63,7 @@ namespace sbuild
virtual chroot::ptr
clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const;
diff --git a/sbuild/sbuild-chroot-btrfs-snapshot.cc b/sbuild/sbuild-chroot-btrfs-snapshot.cc
index 9a86c2e..ab2e104 100644
--- a/sbuild/sbuild-chroot-btrfs-snapshot.cc
+++ b/sbuild/sbuild-chroot-btrfs-snapshot.cc
@@ -64,6 +64,7 @@ chroot_btrfs_snapshot::clone () const
sbuild::chroot::ptr
chroot_btrfs_snapshot::clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const
{
@@ -72,7 +73,7 @@ chroot_btrfs_snapshot::clone_session (std::string const& session_id,
assert(psess);
ptr session(new chroot_btrfs_snapshot(*this));
- psess->clone_session_setup(session, session_id, user, root);
+ psess->clone_session_setup(session, session_id, alias, user, root);
return session;
}
diff --git a/sbuild/sbuild-chroot-btrfs-snapshot.h b/sbuild/sbuild-chroot-btrfs-snapshot.h
index 671fef1..b7d9488 100644
--- a/sbuild/sbuild-chroot-btrfs-snapshot.h
+++ b/sbuild/sbuild-chroot-btrfs-snapshot.h
@@ -49,6 +49,7 @@ namespace sbuild
virtual chroot::ptr
clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const;
diff --git a/sbuild/sbuild-chroot-config.cc b/sbuild/sbuild-chroot-config.cc
index 7f76089..d9ab841 100644
--- a/sbuild/sbuild-chroot-config.cc
+++ b/sbuild/sbuild-chroot-config.cc
@@ -739,7 +739,7 @@ chroot_config::load_keyfile (std::string const& chroot_namespace,
if (chroot_namespace == "session" &&
chroot->get_facet<chroot_facet_session_clonable>())
{
- chroot = chroot->clone_session("dummy-session-name", "", false);
+ chroot = chroot->clone_session("dummy-session-name", "dummy-session-name", "", false);
assert(chroot);
chroot_facet_session::const_ptr psess
(chroot->get_facet<chroot_facet_session>());
diff --git a/sbuild/sbuild-chroot-directory.cc b/sbuild/sbuild-chroot-directory.cc
index 23a67dc..356783d 100644
--- a/sbuild/sbuild-chroot-directory.cc
+++ b/sbuild/sbuild-chroot-directory.cc
@@ -74,6 +74,7 @@ chroot_directory::clone () const
sbuild::chroot::ptr
chroot_directory::clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const
{
@@ -82,7 +83,7 @@ chroot_directory::clone_session (std::string const& session_id,
assert(psess);
ptr session(new chroot_directory(*this));
- psess->clone_session_setup(session, session_id, user, root);
+ psess->clone_session_setup(session, session_id, alias, user, root);
return session;
}
diff --git a/sbuild/sbuild-chroot-directory.h b/sbuild/sbuild-chroot-directory.h
index acbcd3e..cae17e9 100644
--- a/sbuild/sbuild-chroot-directory.h
+++ b/sbuild/sbuild-chroot-directory.h
@@ -60,6 +60,7 @@ namespace sbuild
virtual chroot::ptr
clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const;
diff --git a/sbuild/sbuild-chroot-facet-session-clonable.cc b/sbuild/sbuild-chroot-facet-session-clonable.cc
index f9c30d7..6af4789 100644
--- a/sbuild/sbuild-chroot-facet-session-clonable.cc
+++ b/sbuild/sbuild-chroot-facet-session-clonable.cc
@@ -74,6 +74,7 @@ chroot_facet_session_clonable::get_name () const
void
chroot_facet_session_clonable::clone_session_setup (chroot::ptr& clone,
std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const
{
@@ -88,6 +89,7 @@ chroot_facet_session_clonable::clone_session_setup (chroot::ptr& clone,
assert(psess);
psess->set_original_name(clone->get_name());
+ psess->set_selected_name(alias);
clone->set_name(session_id);
assert(clone->get_name() == session_id);
clone->set_description
diff --git a/sbuild/sbuild-chroot-facet-session-clonable.h b/sbuild/sbuild-chroot-facet-session-clonable.h
index 4c83490..48eff5b 100644
--- a/sbuild/sbuild-chroot-facet-session-clonable.h
+++ b/sbuild/sbuild-chroot-facet-session-clonable.h
@@ -73,6 +73,7 @@ namespace sbuild
virtual void
clone_session_setup (chroot::ptr& clone,
std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const;
diff --git a/sbuild/sbuild-chroot-facet-session.cc b/sbuild/sbuild-chroot-facet-session.cc
index a312477..d457523 100644
--- a/sbuild/sbuild-chroot-facet-session.cc
+++ b/sbuild/sbuild-chroot-facet-session.cc
@@ -40,7 +40,8 @@ using namespace sbuild;
chroot_facet_session::chroot_facet_session ():
chroot_facet(),
- original_chroot_name()
+ original_chroot_name(),
+ selected_chroot_name()
{
}
@@ -78,6 +79,19 @@ void
chroot_facet_session::set_original_name (std::string const& name)
{
this->original_chroot_name = name;
+ this->selected_chroot_name = name;
+}
+
+std::string const&
+chroot_facet_session::get_selected_name () const
+{
+ return this->selected_chroot_name;
+}
+
+void
+chroot_facet_session::set_selected_name (std::string const& name)
+{
+ this->selected_chroot_name = name;
}
void
@@ -88,6 +102,9 @@ chroot_facet_session::setup_env (chroot const& chroot,
// defaults to session ID).
if (!get_original_name().empty())
env.add("CHROOT_NAME", get_original_name());
+
+ if (!get_selected_name().empty())
+ env.add("CHROOT_ALIAS", get_selected_name());
}
sbuild::chroot::session_flags
@@ -102,6 +119,8 @@ chroot_facet_session::get_details (chroot const& chroot,
{
if (!get_original_name().empty())
detail.add(_("Original Chroot Name"), get_original_name());
+ if (!get_original_name().empty())
+ detail.add(_("Selected Chroot Name"), get_selected_name());
if (!chroot.get_name().empty())
detail.add(_("Session ID"), chroot.get_name());
}
@@ -113,6 +132,10 @@ chroot_facet_session::get_keyfile (chroot const& chroot,
keyfile::set_object_value(*this, &chroot_facet_session::get_original_name,
keyfile, chroot.get_name(),
"original-name");
+
+ keyfile::set_object_value(*this, &chroot_facet_session::get_selected_name,
+ keyfile, chroot.get_name(),
+ "selected-name");
}
void
@@ -163,4 +186,10 @@ chroot_facet_session::set_keyfile (chroot& chroot,
"original-name",
keyfile::PRIORITY_OPTIONAL);
used_keys.push_back("original-name");
+
+ keyfile::get_object_value(*this, &chroot_facet_session::set_selected_name,
+ keyfile, chroot.get_name(),
+ "selected-name",
+ keyfile::PRIORITY_OPTIONAL);
+ used_keys.push_back("selected-name");
}
diff --git a/sbuild/sbuild-chroot-facet-session.h b/sbuild/sbuild-chroot-facet-session.h
index 2a6dcc1..055e90b 100644
--- a/sbuild/sbuild-chroot-facet-session.h
+++ b/sbuild/sbuild-chroot-facet-session.h
@@ -73,12 +73,29 @@ namespace sbuild
/**
* Set the original name of the chroot (prior to session cloning).
+ * This will also set the selected name.
*
* @param name the name.
*/
void
set_original_name (std::string const& name);
+ /**
+ * Get the selected name of the chroot (alias used).
+ *
+ * @returns the name.
+ */
+ std::string const&
+ get_selected_name () const;
+
+ /**
+ * Set the selected name of the chroot (alias used).
+ *
+ * @param name the name.
+ */
+ void
+ set_selected_name (std::string const& name);
+
virtual void
setup_env (chroot const& chroot,
environment& env) const;
@@ -102,6 +119,8 @@ namespace sbuild
private:
/// Original chroot name prior to session cloning.
std::string original_chroot_name;
+ /// Selected chroot name.
+ std::string selected_chroot_name;
};
}
diff --git a/sbuild/sbuild-chroot-file.cc b/sbuild/sbuild-chroot-file.cc
index 1dd75f9..d646a08 100644
--- a/sbuild/sbuild-chroot-file.cc
+++ b/sbuild/sbuild-chroot-file.cc
@@ -63,6 +63,7 @@ chroot_file::clone () const
sbuild::chroot::ptr
chroot_file::clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const
{
@@ -71,7 +72,7 @@ chroot_file::clone_session (std::string const& session_id,
assert(psess);
ptr session(new chroot_file(*this));
- psess->clone_session_setup(session, session_id, user, root);
+ psess->clone_session_setup(session, session_id, alias, user, root);
return session;
}
diff --git a/sbuild/sbuild-chroot-file.h b/sbuild/sbuild-chroot-file.h
index de2e631..b32f92c 100644
--- a/sbuild/sbuild-chroot-file.h
+++ b/sbuild/sbuild-chroot-file.h
@@ -49,6 +49,7 @@ namespace sbuild
virtual chroot::ptr
clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const;
diff --git a/sbuild/sbuild-chroot-loopback.cc b/sbuild/sbuild-chroot-loopback.cc
index 497b256..a3bc45b 100644
--- a/sbuild/sbuild-chroot-loopback.cc
+++ b/sbuild/sbuild-chroot-loopback.cc
@@ -65,6 +65,7 @@ chroot_loopback::clone () const
sbuild::chroot::ptr
chroot_loopback::clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const
{
@@ -73,7 +74,7 @@ chroot_loopback::clone_session (std::string const& session_id,
assert(psess);
ptr session(new chroot_loopback(*this));
- psess->clone_session_setup(session, session_id, user, root);
+ psess->clone_session_setup(session, session_id, alias, user, root);
return session;
}
diff --git a/sbuild/sbuild-chroot-loopback.h b/sbuild/sbuild-chroot-loopback.h
index 596cce8..ee3b03b 100644
--- a/sbuild/sbuild-chroot-loopback.h
+++ b/sbuild/sbuild-chroot-loopback.h
@@ -54,6 +54,7 @@ namespace sbuild
virtual chroot::ptr
clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const;
diff --git a/sbuild/sbuild-chroot-lvm-snapshot.cc b/sbuild/sbuild-chroot-lvm-snapshot.cc
index 36ac30b..c581f01 100644
--- a/sbuild/sbuild-chroot-lvm-snapshot.cc
+++ b/sbuild/sbuild-chroot-lvm-snapshot.cc
@@ -63,6 +63,7 @@ chroot_lvm_snapshot::clone () const
sbuild::chroot::ptr
chroot_lvm_snapshot::clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const
{
@@ -71,7 +72,7 @@ chroot_lvm_snapshot::clone_session (std::string const& session_id,
assert(psess);
ptr session(new chroot_lvm_snapshot(*this));
- psess->clone_session_setup(session, session_id, user, root);
+ psess->clone_session_setup(session, session_id, alias, user, root);
return session;
}
diff --git a/sbuild/sbuild-chroot-lvm-snapshot.h b/sbuild/sbuild-chroot-lvm-snapshot.h
index bcff8a7..b955fbe 100644
--- a/sbuild/sbuild-chroot-lvm-snapshot.h
+++ b/sbuild/sbuild-chroot-lvm-snapshot.h
@@ -49,6 +49,7 @@ namespace sbuild
virtual chroot::ptr
clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const;
diff --git a/sbuild/sbuild-chroot-plain.cc b/sbuild/sbuild-chroot-plain.cc
index 67f9750..84c72d0 100644
--- a/sbuild/sbuild-chroot-plain.cc
+++ b/sbuild/sbuild-chroot-plain.cc
@@ -52,6 +52,7 @@ chroot_plain::clone () const
sbuild::chroot::ptr
sbuild::chroot_plain::clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const
{
diff --git a/sbuild/sbuild-chroot-plain.h b/sbuild/sbuild-chroot-plain.h
index a5cb7af..a0da67f 100644
--- a/sbuild/sbuild-chroot-plain.h
+++ b/sbuild/sbuild-chroot-plain.h
@@ -48,6 +48,7 @@ namespace sbuild
virtual chroot::ptr
clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const;
diff --git a/sbuild/sbuild-chroot.h b/sbuild/sbuild-chroot.h
index ee07b88..491ac81 100644
--- a/sbuild/sbuild-chroot.h
+++ b/sbuild/sbuild-chroot.h
@@ -136,13 +136,15 @@ namespace sbuild
/**
* Create a session chroot.
*
- * @param name the identifier (session_id) for the new session.
+ * @param session_id the identifier (session_id) for the new session.
+ * @param alias used to initially identify the chroot.
* @param user the user creating the session.
* @param root true if the user has root access, otherwise false.
* @returns a session chroot.
*/
virtual chroot::ptr
- clone_session (std::string const& name,
+ clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const = 0;
diff --git a/sbuild/sbuild-session.cc b/sbuild/sbuild-session.cc
index cc07b4c..1bfce59 100644
--- a/sbuild/sbuild-session.cc
+++ b/sbuild/sbuild-session.cc
@@ -529,7 +529,8 @@ session::get_auth_status () const
cur != this->chroots.end();
++cur)
{
- status = auth::change_auth(status, get_chroot_auth_status(status, *cur));
+ status = auth::change_auth(status,
+ get_chroot_auth_status(status, cur->chroot));
}
return status;
@@ -609,17 +610,17 @@ session::run_impl ()
++cur)
{
log_debug(DEBUG_NOTICE)
- << format("Running session in %1% chroot:") % *cur
+ << format("Running session in %1% chroot:") % cur->alias
<< endl;
- const chroot::ptr ch = *cur;
+ const chroot::ptr ch = cur->chroot;
// TODO: Make chroot/session selection automatically fail
// if no session exists earlier on when selecting chroots.
if (ch->get_session_flags() & chroot::SESSION_CREATE &&
(this->session_operation != OPERATION_AUTOMATIC &&
this->session_operation != OPERATION_BEGIN))
- throw error(*cur, CHROOT_NOTFOUND);
+ throw error(cur->alias, CHROOT_NOTFOUND);
// For now, use a copy of the chroot; if we create a session
// later, we will replace it.
@@ -655,6 +656,7 @@ session::run_impl ()
in_groups, in_root_groups);
chroot = ch->clone_session(new_session_id,
+ cur->alias,
this->authstat->get_ruser(),
(in_root_users || in_root_groups));
assert(chroot->get_facet<chroot_facet_session>());
@@ -1259,6 +1261,10 @@ session::run_child (sbuild::chroot::ptr& session_chroot)
env.add("SCHROOT_CHROOT_NAME", psess->get_original_name());
else
env.add("SCHROOT_CHROOT_NAME", session_chroot->get_name());
+ if (psess && psess->get_selected_name().length())
+ env.add("SCHROOT_ALIAS_NAME", psess->get_selected_name());
+ else
+ env.add("SCHROOT_ALIAS_NAME", session_chroot->get_name());
env.add("SCHROOT_SESSION_ID", session_chroot->get_name());
log_debug(DEBUG_INFO) << "Set environment:\n" << env;
diff --git a/sbuild/sbuild-session.h b/sbuild/sbuild-session.h
index bd8f6b9..e137998 100644
--- a/sbuild/sbuild-session.h
+++ b/sbuild/sbuild-session.h
@@ -46,8 +46,16 @@ namespace sbuild
class session
{
public:
+ struct chroot_list_entry
+ {
+ /// Name used to initially identify the chroot.
+ std::string alias;
+ /// Pointer to chroot object.
+ sbuild::chroot::ptr chroot;
+ };
+
/// A list of chroots.
- typedef std::vector<chroot::ptr> chroot_list;
+ typedef std::vector<chroot_list_entry> chroot_list;
/// Session operations.
enum operation
diff --git a/test/sbuild-chroot-block-device.cc b/test/sbuild-chroot-block-device.cc
index 9e493d1..e570373 100644
--- a/test/sbuild-chroot-block-device.cc
+++ b/test/sbuild-chroot-block-device.cc
@@ -161,6 +161,7 @@ public:
sbuild::environment expected;
setup_env_gen(expected);
expected.add("SESSION_ID", "test-session-name");
+ expected.add("CHROOT_ALIAS", "test-session-name");
expected.add("CHROOT_DESCRIPTION", chroot->get_description() + ' ' + _("(session chroot)"));
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
@@ -190,6 +191,7 @@ public:
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() + ' ' + _("(session chroot)"));
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
@@ -243,6 +245,7 @@ public:
setup_keyfile_session(expected, group);
setup_keyfile_block(expected, group);
expected.set_value(group, "name", "test-session-name");
+ expected.set_value(group, "selected-name", "test-session-name");
expected.set_value(group, "mount-device", "/dev/testdev");
expected.set_value(group, "mount-location", "/mnt/mount-location");
setup_keyfile_session_clone(expected, group);
@@ -273,6 +276,7 @@ public:
setup_keyfile_session(expected, group);
setup_keyfile_block(expected, group);
expected.set_value(group, "name", "test-union-session-name");
+ expected.set_value(group, "selected-name", "test-union-session-name");
expected.set_value(group, "mount-device", "/dev/testdev");
expected.set_value(group, "mount-location", "/mnt/mount-location");
setup_keyfile_session_clone(expected, group);
diff --git a/test/sbuild-chroot-btrfs-snapshot.cc b/test/sbuild-chroot-btrfs-snapshot.cc
index 0afa6ca..6384333 100644
--- a/test/sbuild-chroot-btrfs-snapshot.cc
+++ b/test/sbuild-chroot-btrfs-snapshot.cc
@@ -177,6 +177,7 @@ public:
setup_env_gen(expected);
expected.add("CHROOT_TYPE", "btrfs-snapshot");
expected.add("SESSION_ID", "test-session-name");
+ expected.add("CHROOT_ALIAS", "test-session-name");
expected.add("CHROOT_DESCRIPTION", chroot->get_description() + ' ' + _("(session chroot)"));
expected.add("CHROOT_BTRFS_SOURCE_SUBVOLUME", "/srv/chroot/sid");
expected.add("CHROOT_BTRFS_SNAPSHOT_DIRECTORY", "/srv/chroot/snapshot");
@@ -231,6 +232,7 @@ public:
setup_keyfile_btrfs(expected, group);
expected.set_value(group, "type", "btrfs-snapshot");
expected.set_value(group, "name", "test-session-name");
+ expected.set_value(group, "selected-name", "test-session-name");
expected.set_value(group, "description", chroot->get_description() + ' ' + _("(session chroot)"));
expected.set_value(group, "aliases", "");
expected.set_value(group, "btrfs-snapshot-name", "/srv/chroot/snapshot/test-session-name");
diff --git a/test/sbuild-chroot-directory.cc b/test/sbuild-chroot-directory.cc
index cc3901f..e02e9fe 100644
--- a/test/sbuild-chroot-directory.cc
+++ b/test/sbuild-chroot-directory.cc
@@ -141,6 +141,7 @@ public:
setup_env_gen(expected);
expected.add("SESSION_ID", "test-session-name");
+ expected.add("CHROOT_ALIAS", "test-session-name");
expected.add("CHROOT_DESCRIPTION", chroot->get_description() + ' ' + _("(session chroot)"));
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
@@ -173,6 +174,7 @@ public:
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() + ' ' + _("(session chroot)"));
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
@@ -220,6 +222,7 @@ public:
setup_keyfile_session(expected, group);
expected.set_value(group, "type", "directory");
expected.set_value(group, "name", "test-session-name");
+ expected.set_value(group, "selected-name", "test-session-name");
expected.set_value(group, "directory", "/srv/chroot/example-chroot");
expected.set_value(group, "mount-location", "/mnt/mount-location");
setup_keyfile_session_clone(expected, group);
@@ -235,6 +238,7 @@ public:
{
// Create session owned by user in root-users.
this->session = this->chroot->clone_session("test-session-name",
+ "test-session-name",
"user3",
true);
if (this->session)
@@ -249,6 +253,7 @@ public:
expected.set_value(group, "root-users", "user3");
expected.set_value(group, "type", "directory");
expected.set_value(group, "name", "test-session-name");
+ expected.set_value(group, "selected-name", "test-session-name");
expected.set_value(group, "directory", "/srv/chroot/example-chroot");
expected.set_value(group, "mount-location", "/mnt/mount-location");
setup_keyfile_session_clone(expected, group);
@@ -280,6 +285,7 @@ public:
setup_keyfile_session(expected, group);
expected.set_value(group, "type", "directory");
expected.set_value(group, "name", "test-union-session-name");
+ expected.set_value(group, "selected-name", "test-union-session-name");
expected.set_value(group, "directory", "/srv/chroot/example-chroot");
expected.set_value(group, "mount-location", "/mnt/mount-location");
setup_keyfile_session_clone(expected, group);
diff --git a/test/sbuild-chroot-file.cc b/test/sbuild-chroot-file.cc
index b6ef984..dad06f7 100644
--- a/test/sbuild-chroot-file.cc
+++ b/test/sbuild-chroot-file.cc
@@ -169,6 +169,7 @@ public:
sbuild::environment expected;
setup_env_gen(expected);
expected.add("SESSION_ID", "test-session-name");
+ expected.add("CHROOT_ALIAS", "test-session-name");
expected.add("CHROOT_DESCRIPTION", chroot->get_description() + ' ' + _("(session chroot)"));
expected.add("CHROOT_FILE_REPACK", "false");
expected.add("CHROOT_SESSION_CLONE", "false");
@@ -217,6 +218,7 @@ public:
setup_keyfile_session(expected, group);
setup_keyfile_file(expected, group);
expected.set_value(group, "name", "test-session-name");
+ expected.set_value(group, "selected-name", "test-session-name");
expected.set_value(group, "file-repack", "false");
expected.set_value(group, "mount-location", "/mnt/mount-location");
setup_keyfile_session_clone(expected, group);
diff --git a/test/sbuild-chroot-loopback.cc b/test/sbuild-chroot-loopback.cc
index 973cc13..0fedd43 100644
--- a/test/sbuild-chroot-loopback.cc
+++ b/test/sbuild-chroot-loopback.cc
@@ -159,6 +159,7 @@ public:
setup_env_gen(expected);
expected.add("SESSION_ID", "test-session-name");
+ expected.add("CHROOT_ALIAS", "test-session-name");
expected.add("CHROOT_DESCRIPTION", chroot->get_description() + ' ' + _("(session chroot)"));
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
@@ -190,6 +191,7 @@ public:
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() + ' ' + _("(session chroot)"));
expected.add("CHROOT_SESSION_CLONE", "false");
expected.add("CHROOT_SESSION_CREATE", "false");
@@ -243,6 +245,7 @@ public:
setup_keyfile_session(expected, group);
setup_keyfile_loop(expected, group);
expected.set_value(group, "name", "test-session-name");
+ expected.set_value(group, "selected-name", "test-session-name");
expected.set_value(group, "mount-device", loopback_file);
expected.set_value(group, "mount-location", "/mnt/mount-location");
setup_keyfile_session_clone(expected, group);
@@ -273,6 +276,7 @@ public:
setup_keyfile_session(expected, group);
setup_keyfile_loop(expected, group);
expected.set_value(group, "name", "test-union-session-name");
+ expected.set_value(group, "selected-name", "test-union-session-name");
expected.set_value(group, "mount-device", loopback_file);
expected.set_value(group, "mount-location", "/mnt/mount-location");
setup_keyfile_session_clone(expected, group);
diff --git a/test/sbuild-chroot-lvm-snapshot.cc b/test/sbuild-chroot-lvm-snapshot.cc
index 13f352c..46ba8d7 100644
--- a/test/sbuild-chroot-lvm-snapshot.cc
+++ b/test/sbuild-chroot-lvm-snapshot.cc
@@ -150,6 +150,7 @@ public:
setup_env_gen(expected);
expected.add("CHROOT_TYPE", "lvm-snapshot");
expected.add("SESSION_ID", "test-session-name");
+ expected.add("CHROOT_ALIAS", "test-session-name");
expected.add("CHROOT_DESCRIPTION", chroot->get_description() + ' ' + _("(session chroot)"));
expected.add("CHROOT_MOUNT_DEVICE", "/dev/volgroup/test-session-name");
expected.add("CHROOT_LVM_SNAPSHOT_NAME", "test-session-name");
@@ -207,6 +208,7 @@ public:
setup_keyfile_lvm(expected, group);
expected.set_value(group, "type", "lvm-snapshot");
expected.set_value(group, "name", "test-session-name");
+ expected.set_value(group, "selected-name", "test-session-name");
expected.set_value(group, "description", chroot->get_description() + ' ' + _("(session chroot)"));
expected.set_value(group, "aliases", "");
expected.set_value(group, "lvm-snapshot-device", "/dev/volgroup/test-session-name");
diff --git a/test/sbuild-chroot.cc b/test/sbuild-chroot.cc
index 1a3f795..b49f72a 100644
--- a/test/sbuild-chroot.cc
+++ b/test/sbuild-chroot.cc
@@ -46,6 +46,7 @@ public:
virtual ptr
clone_session (std::string const& session_id,
+ std::string const& alias,
std::string const& user,
bool root) const
{ return ptr(); }
diff --git a/test/test-sbuild-chroot.h b/test/test-sbuild-chroot.h
index 9dfa9ef..b68c2e9 100644
--- a/test/test-sbuild-chroot.h
+++ b/test/test-sbuild-chroot.h
@@ -81,6 +81,7 @@ public:
if (psess)
{
this->session = this->chroot->clone_session("test-session-name",
+ "test-session-name",
"user1",
false);
if (this->session)
@@ -127,6 +128,7 @@ public:
this->session_union =
this->chroot_union->clone_session("test-union-session-name",
+ "test-union-session-name",
"user1",
false);
this->source_union = chroot_union->clone_source();
--
1.7.7.3