blob: 07e589ad89d8eb0cba0cec3943d40fc75bea39b6 (
plain) (
blame)
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
|
#! /bin/sh
#
# This script determines whether certain earlier versions of the
# Modula-3 port exist on the system in a place where the linker or
# dynamic linker would find them. These earlier versions must be
# removed before installing the current port, because they use higher
# major version numbers for the shared libraries than this port uses.
# This situation arose because of an ill-considered choice for the
# major version numbers in those early ports. I am intentionally
# breaking the rule that the version number should never be decreased,
# in order to nip this unfortunate situation in the bud.
if [ x$2 != xPRE-INSTALL ]; then
exit 0
fi
check() {
local list i lib_path oldIFS status
status=0
# Check the dynamic linker's hints.
list=$(/sbin/ldconfig -r | grep "libm3\.so\.35[34]\." | sed "s/^.* => //")
for file in ${list}; do
if [ -f ${file} ]; then # The file actually exists
echo $(dirname ${file})
status=1
fi
done
# Check any directories in LD_LIBRARY_PATH. Also, check the directory
# where we intend to install the new libraries.
lib_path=${PREFIX:-/usr/local}/lib/m3/FreeBSD2:${LD_LIBRARY_PATH}
oldIFS=${IFS}; IFS=":"; set ${lib_path}; IFS=${oldIFS}
for dir; do
if [ x${dir} != x ]; then
if echo ${dir}/libm3.so.35[34].* | grep -q "\*"; then # Not found
:
else # Found
echo ${dir}
status=1
fi
fi
done
return ${status}
}
tmp=/tmp/m3-inst$$a
trap "rm -f ${tmp}" 1 2 3 15
touch ${tmp}
if check > ${tmp}; then
rm -f ${tmp}
exit 0
else
echo "*****************************************************************"
echo "* IMPORTANT *"
echo "* You currently have an older version of the Modula-3 port on *"
echo "* your system. You must remove the older version before you *"
echo "* install this one. Otherwise, a problem with the shared *"
echo "* libraries in the older version will cause utter confusion. *"
echo "* Please remove the older version and try again. *"
echo "* *"
echo "* Old Modula-3 shared libraries were found in the following *"
echo "* directories: *"
echo "* *"
sort -u ${tmp} | awk '{ printf "* %-59s *\n", $0 }'
echo "*****************************************************************"
rm -f ${tmp}
exit 1
fi
|