[buildd-tools-devel] Bug#675408: Bug#675408: schroot: does not honour FSTAB from /etc/schroot/$profile/config

Roger Leigh rleigh at codelibre.net
Thu May 31 22:35:28 UTC 2012


On Fri, Jun 01, 2012 at 12:09:28AM +0200, Jakub Wilk wrote:
> Package: schroot
> Version: 1.5.4-1
> 
> /etc/schroot/setup.d/10mount contains the following code:
> 
>     # For backward compatibility
>     if [ -z "$SETUP_FSTAB" ]; then
>         SETUP_FSTAB="$FSTAB"
>     else
>         SETUP_FSTAB="${SCHROOT_SYSCONF_DIR}/${SETUP_FSTAB}"
>     fi
> 
> But the "then" part is dead code, as SETUP_FSTAB is always non-empty.
> 
> (NB, I don't understand what the else part is supposed to to.
> SETUP_FSTAB is an absolute path at this point, and
> SCHROOT_SYSCONF_DIR is empty, so this merely adds a leading
> slash...)

Hmm, I may have inadvertently broken this in
http://anonscm.debian.org/gitweb/?p=buildd-tools/schroot.git;a=commitdiff;h=51ccba7088f665e0e463778c09230fc44a38106a
when fixing #675189.

The idea was that if you use profile=foo, then setup.fstab=foo/fstab,
and SETUP_FSTAB=/etc/schroot/foo/fstab.

When you set script-config=foo/config, it was setting profile=foo
for foward compatibility, but /not/ setting setup.fstab etc.  The
above change messes that up.

However... by setting profile=, it would end up in the session state,
which would result in it being set in any case, so it would only
"work" during session setup.  What we probably need to do here is
- not serialise profile= if script-config is in use
- not create the extra settings when set_profile is called and
  script-config is set.  This has downsides though; it prevents
  profile= from overriding script-config=.

Given that the foo/config files are removed for all the stock
profiles, we most likely want to set setup.fstab in all cases where
foo/config does not exist.  I'll have to give this some more
detailed thought to make sure I've got all the different use cases
covered.

BTW, please also see
/usr/share/schroot/setup/common-config
which also does some initialisation of these variables if not
already set.  It should source the config file (if present),
and then set up the paths correctly.


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