Package: emdebian-tools
Version: 1.4.6
Severity: important

During Extremadura, Wookey discovered a nasty bug in emdebian-tools
whereby the chroot code would fail if /bin/sh was not a symlink to
/bin/bash.

With the upcoming release of Lenny where this is now explicitly
supported, this was a problem. I couldn't see my way through this
problem whilst at Extremadura (possibly something to do with too much
beer, too little air-conditioning and too many other problems to fix)
but I think I have a solution now.

The problem only arises because debootstrap calls exec within itself -
mainly to redirect STDOUT and STDERR. debootstrap itself is POSIX shell
so it is set to #!/bin/sh which is fine. However, during processing,
debootstrap calls first_stage_install which is a function defined in the
suite scripts.

These suite scripts are sourced by debootstrap, not executed, so any
shebang line is ignored. This means that if first_stage_install calls
any bash code, debootstrap fails when /bin/sh is not linked to
/bin/bash.

Initially, I added a manpage warning and thought we might have to live
with this bug for a while.

The bash code involved comes not just from emdebian-tools but from
pbuilder so it is unreasonable to expect pbuilder to change just because
emdebian-tools happens to try and bring the two sets of libraries into
play at the same time.

The pbuilder code itself is the mountproc and related code - I'd rather
not have to fork it with a non-bash version.

However, I think there is a solution for this problem - the pbuilder
code required for building a cross-building chroot is not needed when
building a root filesystem chroot. empdebuild calls pbuilder functions
only after second_stage_install and when using the built chroot for
building packages etc. (when debootstrap has finished).

By splitting empbuilderlib into two libraries, one bash and one POSIX, I
can avoid trying to call pbuilder functions within first_stage_install
when generated the root filesystem chroot as well.

Moving all the first_stage_install routines into a new library,
emrootfslib, and making that library POSIX only will allow the necessary
isolation of the pbuilder code from first_stage_install.

I'm taking the opportunity to also reorganise the directories - POSIX
code will live in /usr/share/ and code that absolutely must rely on
pbuilder code lives alongside pbuilder code in /usr/lib/. (If pbuilder
eventually moves to /usr/share/pbuilder/, the pbuilder code will move to
/usr/share/emdebian-tools/.) 

This problem exists in the version of emdebian-tools in Lenny and Sid -
a fixed package will probably be backported along with other important
changes, after Lenny is released.


-- Package-specific info:

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages emdebian-tools depends on:
ii  automake                  1:1.10.1-3     A tool for generating GNU Standard
ii  automake1.9               1.9.6+nogfdl-3 A tool for generating GNU Standard
ii  cdbs                      0.4.52         common build system for Debian pac
ii  dbs                       0.45           Allows Debian source packages with
ii  debhelper                 7.0.17         helper programs for debian/rules
ii  dpatch                    2.0.30         patch maintenance system for Debia
ii  dpkg-dev                  1.14.22        Debian package development tools
ii  emdebian-qa               1.4.6          emdebian quality assurance support
ii  emdebian-rootfs           1.4.6          emdebian root filesystem support
ii  fakeroot                  1.9.6          Gives a fake root environment
ii  g++                       4:4.3.1-2      The GNU C++ compiler
ii  gcc                       4:4.3.1-2      The GNU C compiler
ii  gettext                   0.17-4         GNU Internationalization utilities
ii  libcache-apt-perl         0.12.3         object oriented apt cache perl bin
ii  libdebian-dpkgcross-perl  2.3.1          functions to aid cross-compiling D
ii  libemdebian-tools-perl    1.4.6          emdebian support library
ii  libsoap-lite-perl         0.710.08-1     Client and server side SOAP implem
ii  lsb-release               3.2-20         Linux Standard Base version report
ii  perl                      5.10.0-13      Larry Wall's Practical Extraction 
ii  quilt                     0.46-6         Tool to work with series of patche
ii  subversion                1.5.1dfsg1-1   Advanced version control system
ii  sudo                      1.6.9p17-1     Provide limited super user privile
ii  ucf                       3.0010         Update Configuration File: preserv

Versions of packages emdebian-tools recommends:
ii  less                          418-1      Pager program similar to more

Versions of packages emdebian-tools suggests:
ii  deb-gview                0.2.2           GNOME viewer for .deb package file
ii  debian-xcontrol          0.0.2~pre1+nmu2 Extended syntax for debian/control
ii  file-roller              2.22.4-2        an archive manager for GNOME
ii  meld                     1.1.5.1-2       graphical tool to diff and merge f
ii  mutt                     1.5.18-4        text-based mailreader supporting M
ii  reportbug                3.45            reports bugs in the Debian distrib
ii  wiggle                   0.6-6           a program for applying patches wit

-- debconf information:
* emsource/svnusername: codehelp
* emsetup/aptagent: true
* emsource/targetsuite: unstable
* emsource/workdir: /opt/emdebian/
  emsetup/primary:



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to