Bug#138038: Help offered with report #138038
- To: 138038@bugs.debian.org, control@bugs.debian.org
- Subject: Bug#138038: Help offered with report #138038
- From: Kalle Olavi Niemitalo <kon@iki.fi>
- Date: 03 Feb 2003 18:28:25 +0200
- Message-id: <[🔎] 87heblnxau.fsf@Astalo.y2000.kon.iki.fi>
- Reply-to: Kalle Olavi Niemitalo <kon@iki.fi>, 138038@bugs.debian.org
- References: <15885.42672.120009.821319@gargle.gargle.HOWL> <87vg1eosr6.fsf@Astalo.y2000.kon.iki.fi> <15886.4954.280068.672469@gargle.gargle.HOWL> <87smwhpw8t.fsf@Astalo.y2000.kon.iki.fi> <15886.13758.540132.737475@gargle.gargle.HOWL> <87fzsgk9rb.fsf@Astalo.y2000.kon.iki.fi> <15887.13435.759731.535435@gargle.gargle.HOWL> <8765tc34yo.fsf@Astalo.y2000.kon.iki.fi> <15887.27928.424943.961268@gargle.gargle.HOWL> <8765tcq9ff.fsf@Astalo.y2000.kon.iki.fi> <15888.14372.813169.612265@gargle.gargle.HOWL> <877kdr30w9.fsf@Astalo.y2000.kon.iki.fi> <15888.33434.964118.607605@gargle.gargle.HOWL> <874r8v2uqj.fsf@Astalo.y2000.kon.iki.fi>
reopen 138038
quit
The fix in gcc-defaults 1.3 does not work:
bash-2.05b# find /usr -name "*c++filt*" -print0 | xargs -0 ls -ld
-rwxr-xr-x 1 root root 30028 1998-12-04 06:05 /usr/bin/c++filt
-rwxr-xr-x 1 root root 62408 2002-12-05 00:58 /usr/bin/c++filt.binutils
-rw-r--r-- 1 root root 1461 1998-11-14 01:48 /usr/man/man1/c++filt.1.gz
-rw-r--r-- 1 root root 3265 2002-12-05 00:58 /usr/share/man/man1/c++filt.1.gz
bash-2.05b# dpkg-divert --list | fgrep c++filt
diversion of /usr/bin/c++filt to /usr/bin/c++filt.binutils by g++
diversion of /usr/man/man1/c++filt.1.gz to /usr/man/man1/c++filt.binutils.1.gz by g++
bash-2.05b# dpkg -i ~ftp/pub/Debian/pools/Niemitalo/main/gcc-defaults/g++_3.2.2-0_i386.deb
(Reading database ... 90228 files and directories currently installed.)
Preparing to replace g++ 2:2.95.4-8 (using .../g++_3.2.2-0_i386.deb) ...
Unpacking replacement g++ ...
Setting up g++ (3.2.2-0) ...
Removing `diversion of /usr/bin/c++filt to /usr/bin/c++filt.binutils by g++'
dpkg-divert: rename involves overwriting `/usr/bin/c++filt' with
different file `/usr/bin/c++filt.binutils', not allowed
Removing `diversion of /usr/man/man1/c++filt.1.gz to /usr/man/man1/c++filt.binutils.1.gz by g++'
bash-2.05b# find /usr -name "*c++filt*" -print0 | xargs -0 ls -ld
-rwxr-xr-x 1 root root 30028 1998-12-04 06:05 /usr/bin/c++filt
-rwxr-xr-x 1 root root 62408 2002-12-05 00:58 /usr/bin/c++filt.binutils
-rw-r--r-- 1 root root 1461 1998-11-14 01:48 /usr/man/man1/c++filt.1.gz
-rw-r--r-- 1 root root 3265 2002-12-05 00:58 /usr/share/man/man1/c++filt.1.gz
bash-2.05b# dpkg-divert --list | fgrep c++filt
diversion of /usr/bin/c++filt to /usr/bin/c++filt.binutils by g++
bash-2.05b#
The postinst script failed to undivert /usr/bin/c++filt,
and left /usr/man/man1/c++filt.1.gz loose in the filesystem.
Why didn't you use the snippet that I mailed to you?
Here it is again:
# fix for report #138038: remove old diversions
if [ -n "`dpkg-divert --list /usr/bin/c++filt.binutils`" ]; then
# diversion of /usr/bin/c++filt
# to /usr/bin/c++filt.binutils
# /usr/bin/c++filt is from old g++
# /usr/bin/c++filt.binutils is from current binutils
rm -f /usr/bin/c++filt
dpkg-divert --package g++ --rename --remove /usr/bin/c++filt
fi
if [ -n "`dpkg-divert --list /usr/man/man1/c++filt.binutils.1.gz`" ]; then
# diversion of /usr/man/man1/c++filt.1.gz
# to /usr/man/man1/c++filt.binutils.1.gz
# /usr/man/man1/c++filt.1.gz is from old g++
# /usr/man/man1/c++filt.binutils.1.gz does not exist any more
# /usr/share/man/man1/c++filt.1.gz is from current binutils
rm -f /usr/man/man1/c++filt.1.gz
dpkg-divert --package g++ --rename --remove /usr/man/man1/c++filt.1.gz
fi
Reply to: