wine.sh 2.72 KB
Newer Older
1 2
#!/bin/sh

3 4 5
PKGNAME=wine
SUPPORTEDARCHES="x86_64 x86"
DESCRIPTION='Wine 32/64 from the repo'
6
VERSION="$2"
7 8
TIPS="Run epm play wine=wine-vanilla to install wine-vanilla package"

9
MAIN=wine
10 11 12
#PKGCOMMON="wine-mono wine-gecko winetricks"
# wine-full and wine require needed versions of these common packages
PKGCOMMON=""
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

[ -n "$VERSION" ] && [ "$VERSION" != "*" ] && MAIN="$VERSION"
VERSION=""

if [ "$MAIN" = "wine-etersoft" ] ; then
    PKGCOMMON="wine-etersoft-mono wine-etersoft-gecko wine-etersoft-winetricks"
    PKGNAMES="wine-etersoft"
    PKGNAMES32="wine32-etersoft"
fi

# FIXME: wrong epm
if [ "$1" = "--remove" ] ; then
    epm remove $(epm qp $MAIN-)
    epm remove $PKGCOMMON
    exit
fi

. $(dirname $0)/common.sh
31

32
vendor="$(epm print info -s)"
33
arch="$(epm print info -a)"
34

35 36
if [ "$vendor" != "alt" ] ; then
    # Устанавливаем wine
37
    epm install $MAIN || exit
38 39 40 41 42 43 44 45 46 47

    case $arch in
        x86_64)
            # Доставляем пропущенные модули (подпакеты) для установленных 64-битных
            epm prescription i586-fix
            ;;
        esac
    exit
fi

48 49

ONLY32=''
50
[ "$3" = "--only-i586" ] && ONLY32=1 && shift
51

52
if [ "$MAIN" != "wine-etersoft" ] ; then
53

54 55 56 57
# do some magic: if winetricks more than 20210206, we have new wine package naming
epm install winetricks || exit 1
WTVER="$(epm print version for package winetricks)"
if [ "$(epm print compare package version "$WTVER" "20210206")" = "1" ] ; then
58
    PKGNAMES="$MAIN-full $MAIN-common"
59
    PKGNAMES32="i586-$MAIN"
60 61
else
    # old naming scheme
62 63
    PKGNAMES="$MAIN lib$MAIN lib$MAIN-gl lib$MAIN-twain"
    PKGNAMES32="i586-$MAIN i586-lib$MAIN i586-lib$MAIN-gl i586-lib$MAIN-twain"
64 65 66
    echo "We recommend ask about more new wine from your vendor."
fi

67 68
fi

69 70 71 72 73 74 75 76 77 78 79 80 81
if [ "$arch" = "x86" ] ; then
    PKGNAMES="$PKGNAMES $PKGCOMMON"
    epm install $PKGNAMES || exit
    exit
fi

if [ "$arch" = "x86_64" ] && [ -n "$ONLY32" ] ; then
    PKGNAMES="$PKGNAMES32 $PKGCOMMON"
    epm install $PKGNAMES || exit
    # Доставляем пропущенные модули (подпакеты) для установленных 64-битных
    epm prescription i586-fix
    exit
fi
82

83 84 85 86 87 88 89 90 91 92 93
if [ "$arch" = "x86_64" ] ; then
    PKGNAMES="$PKGNAMES $PKGCOMMON"
    epm install $PKGNAMES || exit
    # for non wow64 packages install 32 bit part
    if ! epm ql $MAIN | grep -q "/i386-windows/" ; then
        epm install $PKGNAMES32 || exit
        # Доставляем пропущенные модули (подпакеты) для установленных 64-битных
        epm prescription i586-fix
    fi
    exit
fi
94

95
echo "Arch $arch is not yet supported" && exit 1
96 97 98

# TODO:
# epm policy $MAIN-gl 2>/dev/null >/dev/null || OLD wine packaging name scheme