Ludwig Nussel
588ddc59f2
ok OBS-URL: https://build.opensuse.org/request/show/56216 OBS-URL: https://build.opensuse.org/package/show/games:tools/mumble?expand=0&rev=1
64 lines
1.5 KiB
Diff
64 lines
1.5 KiB
Diff
automagically choose correct preload library on biarch systems
|
|
|
|
Uses "file" to check whether called program is a 32bit or 64bit ELF
|
|
file. If that cannot be determined it checks the uname.
|
|
|
|
Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
|
|
|
|
Index: mumble-1.1.3/scripts/mumble-overlay
|
|
===================================================================
|
|
--- mumble-1.1.3.orig/scripts/mumble-overlay
|
|
+++ mumble-1.1.3/scripts/mumble-overlay
|
|
@@ -1,9 +1,47 @@
|
|
-#! /bin/sh
|
|
+#!/bin/bash
|
|
|
|
-if [ -d /usr/lib/mumble ]; then
|
|
- MUMBLE_OVERLAY_PATH=/usr/lib/mumble
|
|
+libdir=/usr/lib
|
|
+if [ -z "$1" -o "$1" = '--help' ]; then
|
|
+ echo "USAGE: $0 <program> [args...]"
|
|
+ exit 1
|
|
+fi
|
|
+
|
|
+# biarch system?
|
|
+if [ -d /usr/lib64 ]; then
|
|
+ binary="$1"
|
|
+ # no slashes? search in $PATH
|
|
+ if [ "${binary/\/}" = "$binary" ]; then
|
|
+ found=
|
|
+ for i in ${PATH//:/ }; do
|
|
+ if [ -x "$i/$binary" ]; then
|
|
+ found="$i/$binary"
|
|
+ break
|
|
+ fi
|
|
+ done
|
|
+ binary="$found"
|
|
+ fi
|
|
+ if [ -z "$binary" ]; then
|
|
+ echo "$1 not found" >&2
|
|
+ exit 1
|
|
+ fi
|
|
+ case `file "$binary"` in
|
|
+ *64-bit*) libdir=/usr/lib64 ;;
|
|
+ *32-bit*) ;;
|
|
+ *)
|
|
+ # target is no ELF binary, fall back to machine
|
|
+ # architecture. User has to use e.g. linux32 or
|
|
+ # setarch to change to 32bit on 64bit archs then
|
|
+ case "`uname -m`" in
|
|
+ x86_64|s390x|ppc64) libdir=/usr/lib64 ;;
|
|
+ esac
|
|
+ ;;
|
|
+ esac
|
|
+fi
|
|
+
|
|
+if [ -d $libdir/mumble ]; then
|
|
+ MUMBLE_OVERLAY_PATH=$libdir/mumble
|
|
else
|
|
- MUMBLE_OVERLAY_PATH=/usr/lib
|
|
+ MUMBLE_OVERLAY_PATH=$libdir
|
|
fi
|
|
|
|
if [ -f /etc/sysconfig/mumble ]; then
|