source: src-sh/pbi-manager10/rc.d/ldpbiconfig @ 651bd28

9.2-releasereleng/10.0releng/10.0.1
Last change on this file since 651bd28 was 651bd28, checked in by Kris Moore <kris@…>, 7 months ago

Add a new pbi-manager10 copy, this will be used for FreeBSD > 10

  • Property mode set to 100755
File size: 2.7 KB
Line 
1#!/bin/sh
2#
3
4# PROVIDE: ldpbiconfig
5# REQUIRE: mountcritremote cleanvar
6# BEFORE:  DAEMON
7
8. /etc/rc.subr
9
10name="ldpbiconfig"
11ldconfig_command="/sbin/ldconfig"
12ldpbiconfig_dirlist=${ldpbiconfig_dirlist:-"/usr/local/etc/ldpbiconfig"}
13start_cmd="ldpbiconfig_start"
14stop_cmd=":"
15
16ldpbiconfig_start()
17{
18        while read dir
19        do
20                hintmod="`echo $dir | sed 's|/|%|g'`"
21                ldpbiconfig_init "$dir" "%${hintmod}"
22
23        done < $ldpbiconfig_dirlist
24}
25
26# Enable a PBI's ldconfig hints file
27ldpbiconfig_init()
28{
29        ldconfig_local_dirs="${1}/libdata/ldconfig"
30        ldconfig_local32_dirs="${1}/libdata/ldconfig"
31        ldconfig_paths="${1}/lib ${1}/lib/compat/pkg"
32        ldconfig32_paths="${1}/lib ${1}/lib/compat/pkg"
33        echo "ldpbiconfig for: ${1}"
34        ldconfig=${ldconfig_command}
35        local _files _ins
36
37        _ins=
38        checkyesno ldconfig_insecure && _ins="-i"
39        if [ -x "${ldconfig_command}" ]; then
40                _LDC="/lib /usr/lib"
41                for i in ${ldconfig_local_dirs}; do
42                        if [ -d "${i}" ]; then
43                                _files=`find ${i} -type f`
44                                if [ -n "${_files}" ]; then
45                                        ldconfig_paths="${ldconfig_paths} `cat ${_files} | sort -u`"
46                                fi
47                        fi
48                done
49                for i in ${ldconfig_paths} /etc/ld-elf.so.conf; do
50                        if [ -r "${i}" ]; then
51                                _LDC="${_LDC} ${i}"
52                        fi
53                done
54                if [ -d "/usr/local/lib" ] ; then _LDC="${_LDC} /usr/local/lib" ; fi
55                if [ -d "/usr/local/lib/compat/pkg" ] ; then _LDC="${_LDC} /usr/local/lib/compat/pkg" ; fi
56                check_startmsgs && echo 'ELF ldconfig path:' ${_LDC}
57                ${ldconfig} -elf -f "/var/run/ld-elf.so.hints${2}" ${_ins} ${_LDC}
58
59                case `sysctl -n hw.machine_arch` in
60                amd64)
61                        for i in ${ldconfig_local32_dirs}; do
62                                if [ -d "${i}" ]; then
63                                        _files=`find ${i} -type f`
64                                        if [ -n "${_files}" ]; then
65                                                ldconfig32_paths="${ldconfig32_paths} `cat ${_files} | sort -u`"
66                                        fi
67                                fi
68                        done
69                        _LDC=""
70                        for i in ${ldconfig32_paths}; do
71                                if [ -r "${i}" ]; then
72                                        _LDC="${_LDC} ${i}"
73                                fi
74                        done
75                        if [ -d "/usr/local32/lib" ] ; then _LDC="${_LDC} /usr/local32/lib" ; fi
76                        if [ -d "/usr/local32/lib/compat/pkg" ] ; then _LDC="${_LDC} /usr/local32/lib/compat/pkg" ; fi
77                        check_startmsgs &&
78                            echo '32-bit compatibility ldconfig path:' ${_LDC}
79                        ${ldconfig} -32 -m -f "/var/run/ld-elf32.so.hints${2}" ${_ins} ${_LDC}
80                        ;;
81                esac
82
83                # Legacy aout support for i386 only
84                case `sysctl -n hw.machine_arch` in
85                i386)
86                        # Default the a.out ldconfig path.
87                        : ${ldconfig_paths_aout=${ldconfig_paths}}
88                        _LDC=/usr/lib/aout
89                        for i in ${ldconfig_paths_aout} /etc/ld.so.conf; do
90                                if [ -r "${i}" ]; then
91                                        _LDC="${_LDC} ${i}"
92                                fi
93                        done
94                        check_startmsgs && echo 'a.out ldconfig path:' ${_LDC}
95                        ${ldconfig} -aout -f "/var/run/ld.so.hints${2}" ${_ins} ${_LDC}
96                        ;;
97                esac
98        fi
99}
100
101load_rc_config $name
102run_rc_command "$1"
Note: See TracBrowser for help on using the repository browser.