File: binutils-multiarch.prerm.in

package info (click to toggle)
binutils-gold 2.44-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 412,828 kB
  • sloc: ansic: 1,459,850; asm: 761,693; cpp: 215,799; exp: 78,086; makefile: 71,903; sh: 24,043; yacc: 15,048; lisp: 13,579; perl: 13,404; lex: 1,717; ada: 1,681; pascal: 1,446; cs: 879; python: 636; java: 478; sed: 191; xml: 95; awk: 25
file content (81 lines) | stat: -rw-r--r-- 2,624 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#! /bin/sh
# Remove obsolete diversions.
#
# They are already removed in postinst, but if configuration fails,
# they will still be around.  Removing the package without
# configuring would then allow the diversions to leak.
#
# So we catch them here.  This cannot wait for postrm because that
# would break error recovery during upgrades: after the old, working
# version re-adds the diversion in preinst, the diversion would be removed
# again in postrm.  More generally, removing a diversion requires
# a guarantee that the conflicting file is not present any more,
# and we cannot guarantee that if some other version of
# binutils-multiarch is installed.
set -e
this_ver=@DEB_VER@; # this version
ma=@DEB_MULTIARCH@
triplet=@DEB_TRIPLET@
context=$1; # action: upgrade, remove, deconfigure, or failed-upgrade.
if
	test "$context" = failed-upgrade &&
	dpkg --compare-versions "$this_ver" lt "$2"
then
	# prerm of the future failed.
	# Who knows what it was supposed to do?  Abort.
	exit 1
fi

old_diversion() {
	local divertto file
	file=$1
	divertto=${2-$file.single}
	if
		dpkg-divert --package binutils-multiarch --list |
		grep -q -F "$divertto"
	then
		dpkg-divert --package binutils-multiarch \
				--remove --rename \
				--divert "$divertto" "$file"
	fi
}

# remove obsolete diversions
old_diversion /usr/bin/ld.bfd
old_diversion /usr/bin/c++filt
old_diversion /usr/lib/libbfd.a /usr/lib/libbfd-single.a
old_diversion /usr/lib/libopcodes.a /usr/lib/libopcodes-single.a
old_diversion /usr/bin/ld
old_diversion /usr/bin/elfedit
for f in elf32_sparc elf32ppc elf64alpha elf_i386 m68kelf \
         alpha i386linux m68klinux sparclinux sun4
do
	for ext in x xbn xn xr xs xu
	do
		old_diversion /usr/lib/ldscripts/$f.$ext
	done
done
old_diversion /usr/lib/libbfd-2.9.1.0.15.so.0.0.0 \
              /usr/lib/libbfd-single-2.9.1.0.15.so.0.0.0
old_diversion /usr/lib/libopcodes-2.9.1.0.15.so.0.0.0 \
              /usr/lib/libopcodes-single-2.9.1.0.15.so.0.0.0
old_diversion /usr/lib/libbfd.la /usr/lib/libbfd-single.la
old_diversion /usr/lib/libopcodes.la /usr/lib/libopcodes-single.la
old_diversion /usr/include/bfd.h /usr/include/bfd.single.h
old_diversion /usr/lib/ldscripts

rm -f /usr/lib/libbfd-*-multiarch.so.0
rm -f /usr/lib/libopcodes-*-multiarch.so.0

old_diversion /usr/bin/addr2line
old_diversion /usr/bin/ar
old_diversion /usr/bin/embedspu
old_diversion /usr/bin/gprof
old_diversion /usr/bin/nm
old_diversion /usr/bin/objcopy
old_diversion /usr/bin/objdump
old_diversion /usr/bin/ranlib
old_diversion /usr/bin/readelf
old_diversion /usr/bin/size
old_diversion /usr/bin/strings
old_diversion /usr/bin/strip