[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#538822: dash and local diversions

On Sun, 2010-12-26 at 18:29 +0100, Julien Cristau wrote:
> the release notes for squeeze will need to mention that any local
> diversions of /bin/sh need to be removed prior to the upgrade.  Any more
> tweaking of this code path to support other shells as /bin/sh, if at all
> necessary, will wait for post-squeeze.

I put together a proposed patch (attached) for the Release Notes,
listing this as a potential problem in the "Issues to be aware of"
section; comments welcome.


commit f5f495cd9ac7f5ca1329321632e18ea3661babcc
Author: Adam D. Barratt <adam@adam-barratt.org.uk>
Date:   Mon Dec 27 21:17:15 2010 +0000

    Add discussion of previous diversions of /bin/sh breaking dash upgrades
    See Debian bugs #538822 and #540512

diff --git a/en/issues.dbk b/en/issues.dbk
index 9498399..83f1408 100644
--- a/en/issues.dbk
+++ b/en/issues.dbk
@@ -244,6 +244,34 @@ works for <literal>root</literal>.
+<section id="shell-diversions">
+  <title>Potential issues with diversions of /bin/sh</title>
+  <para>
+    If you have previously added a local diversion for <literal>/bin/sh</literal>,
+    or modified the <literal>/bin/sh</literal> symlink to point to somewhere
+    other than <literal>/bin/bash</literal>, then you may encounter problems
+    when upgrading the <systemitem role="package">dash</systemitem> or
+    <systemitem role="package">bash</systemitem> packages.
+    Note that this includes changes made by allowing other packages (for example
+    <systemitem role="package">mksh</systemitem>) to become the default system
+    shell by taking over <literal>/bin/sh</literal>.
+  </para>
+  <para>
+    If you encounter any such issues, please remove the local diversion and
+    ensure that the symlinks for both <literal>/bin/sh</literal> and its
+    manual page point to the files provided by the <systemitem role="package">
+    bash</systemitem> package and then
+    <command>dpkg-reconfigure --force dash</command>.
+  </para>
+  <programlisting>
+    dpkg-divert --remove /bin/sh
+    dpkg-divert --remove /usr/share/man/man1/sh.1.gz
+    ln -sf bash /bin/sh
+    ln -sf bash.1.gz /usr/share/man/man1/sh.1.gz
+  </programlisting>
 <section id="upgrade-to-2.6" condition="fixme">

Reply to: