[buildd-tools-devel] Bug#718127: Bug#718127: schroot: CHROOT_SESSION_PURGE and tar-based source chroots
Roger Leigh
rleigh at codelibre.net
Thu Jul 10 21:36:28 UTC 2014
On Thu, Jul 10, 2014 at 11:03:38PM +0200, Aurelien Jarno wrote:
> On Thu, Jul 10, 2014 at 09:07:57PM +0100, Roger Leigh wrote:
>
> > I think the correct solution will be to add a
> >
> > CHROOT_SESSION_SOURCE=true|false
> >
> > setup environment variable, with corresponding
> >
> > SESSION_SOURCE = 1 << 3 ///< The chroot is a source chroot.
> >
> > setup flag to be set by the chroot facets. The reason for this is that
> > SESSION_PURGE is indicating that the session will be purged, and
> > nothing more than that. It does not make any implied statement about
> > whether or not it's a source chroot or not. For most chroot types,
> > this is only set for non-source chroots since it uses a different
> > chroot type for the source chroot, but this isn't the case for file
> > chroots where both the source and non-source chroots are both
> > purged. I'd rather not overload this flag with unwarranted meaning,
> > so I think adding an additional flag is the way to go here.
> >
>
> That's looks quite reasonable to me.
To implement this, we need session and source facets to have a
pointer to the parent chroot. So we query a session chroot
and ask if its parent was a source chroot, and also link from
a source chroot to plain chroot for generality and
completeness. Initial scoping for 1.7 (1.6 will be backported):
- chroot to inherit enable_shared_from_this and/or switch to
using weak_ptr rather than bare pointers for the facet->chroot
back reference
- session and source need "shared_ptr<chroot> parent" fields
- session::create and source::create constructors to take a
"shared_ptr<chroot> parent" argument. This will be passed by
session_clonable::clone_session and source_clonable::clone_source,
respectively
- session can check for the presence of a source facet in its
parent and set SESSION_SOURCE if parent is not null and the
facet is present.
- chroot will set CHROOT_SESSION_SOURCE=true if the SESSION_SOURCE
flag is set, otherwise set to false.
Regards,
Roger
--
.''`. Roger Leigh
: :' : Debian GNU/Linux http://people.debian.org/~rleigh/
`. `' schroot and sbuild http://alioth.debian.org/projects/buildd-tools
`- GPG Public Key F33D 281D 470A B443 6756 147C 07B3 C8BC 4083 E800
More information about the Buildd-tools-devel
mailing list