OpenWrt – Diff between revs 2 and 3
?pathlinks?
Rev 2 | Rev 3 | |||
---|---|---|---|---|
Line 111... | Line 111... | |||
111 | echo "binary patched ${1##*/} not executable, using original" >&2 |
111 | echo "binary patched ${1##*/} not executable, using original" >&2 |
|
112 | rm -f "$1.patched" |
112 | rm -f "$1.patched" |
|
113 | fi |
113 | fi |
|
114 | } |
114 | } |
|
Line 115... | Line -... | |||
115 | |
- | ||
116 | _patch_glibc() { |
- | ||
117 | _cp "$1" "$1.patched" |
- | ||
118 | sed -i -e 's,/usr/\(\(lib\|share\)/locale\),/###/\1,g' "$1.patched" |
- | ||
119 | |
- | ||
120 | if "$1.patched" 2>&1 | grep -q -- GNU; then |
- | ||
121 | _mv "$1.patched" "$1" |
- | ||
122 | else |
- | ||
123 | echo "binary patched ${1##*/} not executable, using original" >&2 |
- | ||
124 | rm -f "$1.patched" |
- | ||
125 | fi |
- | ||
126 | } |
- | ||
127 | |
115 | |
|
128 | for LDD in ${PATH//://ldd }/ldd; do |
116 | for LDD in ${PATH//://ldd }/ldd; do |
|
129 | "$LDD" --version >/dev/null 2>/dev/null && break |
117 | "$LDD" --version >/dev/null 2>/dev/null && break |
|
130 | LDD="" |
118 | LDD="" |
|
Line 151... | Line 139... | |||
151 | LDSO="" |
139 | LDSO="" |
|
Line 152... | Line 140... | |||
152 | |
140 | |
|
153 | [ -n "$LDD" ] && [ -x "$BIN" ] && file "$BIN" | grep -sqE "ELF.*(executable|interpreter)" && { |
141 | [ -n "$LDD" ] && [ -x "$BIN" ] && file "$BIN" | grep -sqE "ELF.*(executable|interpreter)" && { |
|
154 | for token in $("$LDD" "$BIN" 2>/dev/null); do |
142 | for token in $("$LDD" "$BIN" 2>/dev/null); do |
|
155 | case "$token" in */*.so*) |
- | ||
156 | dest="$DIR/lib/${token##*/}" |
- | ||
157 | ddir="${dest%/*}" |
- | ||
158 | |
143 | case "$token" in */*.so*) |
|
159 | case "$token" in |
144 | case "$token" in |
|
160 | */ld-*.so*) LDSO="${token##*/}" ;; |
145 | *ld-*.so*) LDSO="${token##*/}" ;; |
|
Line -... | Line 146... | |||
- | 146 | esac |
||
- | 147 | |
||
- | 148 | dest="$DIR/lib/${token##*/}" |
||
161 | esac |
149 | ddir="${dest%/*}" |
|
162 | |
150 | |
|
163 | [ -f "$token" -a ! -f "$dest" ] && { |
151 | [ -f "$token" -a ! -f "$dest" ] && { |
|
164 | _md "$ddir" |
- | ||
165 | _cp "$token" "$dest" |
152 | _md "$ddir" |
|
166 | case "$token" in |
- | ||
167 | */ld-*.so*) _patch_ldso "$dest" ;; |
- | ||
168 | */libc.so.6) _patch_glibc "$dest" ;; |
153 | _cp "$token" "$dest" |
|
169 | esac |
154 | [ -n "$LDSO" ] && _patch_ldso "$dest" |
|
170 | } |
155 | } |
|
171 | ;; esac |
156 | ;; esac |