diff options
Diffstat (limited to 'meta/packages/ipkg-utils/ipkg-link/link-vfat-libs.patch')
| -rw-r--r-- | meta/packages/ipkg-utils/ipkg-link/link-vfat-libs.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/meta/packages/ipkg-utils/ipkg-link/link-vfat-libs.patch b/meta/packages/ipkg-utils/ipkg-link/link-vfat-libs.patch new file mode 100644 index 0000000000..7f495f9f4c --- /dev/null +++ b/meta/packages/ipkg-utils/ipkg-link/link-vfat-libs.patch | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | --- ipkg-utils/ipkg-link.orig 2006-04-05 00:08:28.518992136 +0200 | ||
| 2 | +++ ipkg-utils/ipkg-link 2006-04-05 00:08:40.399186072 +0200 | ||
| 3 | @@ -58,6 +58,31 @@ | ||
| 4 | `ln -s "$PREFIX$line" "$line"` | ||
| 5 | fi | ||
| 6 | fi | ||
| 7 | + | ||
| 8 | + # The next function checks whether the _source_ file (ie: /media/card/something) | ||
| 9 | + # does actually exist. If it doesn't, it could by a library symlink (ie: libsomething.0.1 -> libsomething.0) | ||
| 10 | + # Since VFAT & friends do not support symlinks, these library links would not exist after installation | ||
| 11 | + # and trying to symlink them into the rootfs with ipkg-link results in unconnected symlinks in the rootfs. | ||
| 12 | + # So we use the real lib file in /media/card/whatever and create all needed symlinks in the rootfs | ||
| 13 | + # using the real file as source. | ||
| 14 | + | ||
| 15 | + if [ ! -e "$PREFIX$line" ]; then | ||
| 16 | + if ( echo "$line" | grep -q "lib" ) ; then | ||
| 17 | + libsearchfile=$(echo $line | sed -e "s#[a-z0-9/.]*/##g") | ||
| 18 | + libfoundfiles=$(find $PREFIX -name "$libsearchfile*") | ||
| 19 | + | ||
| 20 | + for liblinkfile in $libfoundfiles; do | ||
| 21 | + echo "Linking $line to $liblinkfile" | ||
| 22 | + # link will be pointing to nowhere | ||
| 23 | + if test -L $line; then | ||
| 24 | + rm -f $line | ||
| 25 | + fi | ||
| 26 | + ln -s $liblinkfile $line | ||
| 27 | + done | ||
| 28 | + else | ||
| 29 | + echo "WARNING: Source file [$PREFIX$line] is missing!" | ||
| 30 | + fi | ||
| 31 | + fi | ||
| 32 | done | ||
| 33 | } | ||
| 34 | |||
