summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 9ee07131d0dab44a9ed8e72c9f2ac81f5cb8e3f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# Maintainer: Erik Fleischer <erik [at] erlenweg [dot] de>
# Contributor: Cian Mc Govern <cian [at] cianmcgovern [dot] com>
# Contributor: Roland Singer <roland [at] manjaro [dot] org>
# Contributor: TheBenj <thebenj88 [at] gmail [dot] com>
# Contributor: Philipp 'TamCore' B. <philipp [at] tamcore [dot] eu>

pkgname=crossover
pkgver=25.0.0
pkgrel=1
_pkgdebrel=1
pkgdesc="Run Windows Programs on Linux"
arch=('i686' 'x86_64')
url="https://www.codeweavers.com/crossover"
license=('custom:CrossOver Linux License Grant')
makedepends=('tar')
install=${pkgname}.install

source=("https://media.codeweavers.com/pub/${pkgname}/cxlinux/demo/${pkgname}_${pkgver}-${_pkgdebrel}.deb")
sha256sums=('5a4bb4a8d5efd0df70830a79dbd05153727111ade265ba53d6d1b8a8acd9581b')

depends=( 
    'python' 'desktop-file-utils' 'python-gobject' 'vte3' 'python-cairo'
)

optdepends=(
    'unzip: required to install Guild Wars, automatic installer extraction'
)

depends_i686=(
    'glibc>=2.11' 'libice' 'libsm' 'libx11' 'libxext' 'libxi' 'freetype2'
    'libpng' 'zlib' 'lcms2' 'libgl' 'libxcursor' 'libxrandr' 'glu'
)

optdepends_i686=(
    'alsa-lib: This is the preferred way to provide audio support to Windows applications.'
    "fontconfig: Makes it possible to find and use the system's TrueType fonts. This is strongly recommended for office-type applications."
    'gnutls: This is needed by applications that perform encryption or check online certificates.'
    'gsm: Lets Windows applications use the GSM codec for audio compression and decompression.'
    'libcups: Needed to print to printers managed by the CUPS system, which is most likely the case. It is strongly recommended for office-type applications.'
    'libdbus: This is needed for Windows applications to automatically detect CD-ROM and USB key insertion.'
    'libexif: Some applications need to parse EXIF and read their data tags.'
    'libgphoto2: Lets Windows applications access digital cameras.'
    'libldap: Lets Windows applications access LDAP servers.'
    'libpulse: A featureful, general-purpose sound server (client library).'
    'libxcomposite: This is needed for most CAD-like applications and some games.'
    "libxinerama: This is needed if your display spans multiple screens. If your computer has a single screen then you don't need it."
    'libxml2: This library makes it possible for Windows applications read and write XML files.'
    'libxslt: This library lets Windows applications perform queries and transformations on XML files.'
    'libxxf86vm: This is needed to let games perform some gamma adjustments (essentially to adjust the brightness).'  
    'libxxf86dga: X11 Direct Graphics Access extension library.' 
    'mpg123: Needed by some Windows applications to play MP3 files.'
    'nss-mdns: Host name resolution via mDNS'
    'ocl-icd: OpenCL ICD Bindings'
    'openal: Provides audio support to Windows applications.' 
    'openssl: This library provides support for secure Internet communication.'
    'sane: Lets Windows applications access scanners.'
    'v4l-utils: Lets Windows applications access video devices.' 
)

depends_x86_64=(
    'lib32-glibc>=2.11' 'lib32-libice' 'lib32-libsm' 'lib32-libx11'
    'lib32-libxext' 'lib32-libxi' 'lib32-freetype2' 'lib32-libpng' 'lib32-zlib'
    'lib32-lcms2' 'lib32-libgl' 'lib32-libxcursor' 'lib32-libxrandr'
    'lib32-glu'
)

optdepends_x86_64=(
    'lib32-alsa-lib: This is the preferred way to provide audio support to Windows applications.'
    "lib32-fontconfig: Makes it possible to find and use the system's TrueType fonts. This is strongly recommended for office-type applications."
    'lib32-libcups: Needed to print to printers managed by the CUPS system, which is most likely the case. It is strongly recommended for office-type applications.'
    'lib32-libdbus: This is needed for Windows applications to automatically detect CD-ROM and USB key insertion.'
    'lib32-libexif: (aur) Some applications need to parse EXIF and read their data tags.'
    'lib32-libldap: Lets Windows applications access LDAP servers.'
    'lib32-libpulse: A featureful, general-purpose sound server (client library).'
    'lib32-gnutls: This is needed by applications that perform encryption or check online certificates.'
    'lib32-libxcomposite: This is needed for most CAD-like applications and some games.'
    "lib32-libxinerama: This is needed if your display spans multiple screens. If your computer has a single screen then you don't need it."
    'lib32-libxml2: This library makes it possible for Windows applications read and write XML files.'
    'lib32-libxslt: This library lets Windows applications perform queries and transformations on XML files.' 
    'lib32-libxxf86vm: This is needed to let games perform some gamma adjustments (essentially to adjust the brightness).'  
    'lib32-libxxf86dga: X11 Direct Graphics Access extension library.' 
    'lib32-mpg123: Needed by some Windows applications to play MP3 files.'
    'lib32-nss-mdns: (aur) host name resolution via mDNS'
    'lib32-openal: Provides audio support to Windows applications.' 
    'lib32-openssl: This library provides support for secure Internet communication.'
    'lib32-v4l-utils: Lets Windows applications access video devices.' 
)

package() {
    cd ${srcdir}

    ar -p crossover_${pkgver}-${_pkgdebrel}.deb data.tar.xz | tar Jxf - -C "${pkgdir}" || return 1
    if [[ "${CARCH}" = 'i686' ]]; then
        rm -f ${pkgdir}/opt/cxoffice/lib/nsplugin-linux64.so
    fi

    #remove symlink and create real directory
    rm ${pkgdir}/opt/cxoffice/doc 
    mkdir ${pkgdir}/opt/cxoffice/doc 

    mv ${pkgdir}/usr/share/doc/crossover/* ${pkgdir}/opt/cxoffice/doc

    rm -r "${pkgdir}/usr"
    sed -e 's!;;"MenuRoot" = ""!"MenuRoot" = "Windows Games"!' \
        -e 's!;;"MenuStrip" = ""!"MenuStrip" = "1"!' \
        -i ${pkgdir}/opt/cxoffice/share/crossover/bottle_data/cxbottle.conf

    mkdir -p ${pkgdir}/usr/bin
    ln -s /opt/cxoffice/bin/crossover ${pkgdir}/usr/bin/crossover
    ln -s /opt/cxoffice/bin/cxsetup ${pkgdir}/usr/bin/cxsetup

    mkdir -p ${pkgdir}/etc/profile.d
    echo '[ -d /opt/cxoffice/bin ] && export PATH="${PATH}:/opt/cxoffice/bin"' > ${pkgdir}/etc/profile.d/cxoffice.sh
    echo '[ -d /opt/cxoffice/bin ] && setenv PATH ${PATH}:/opt/cxoffice/bin' > ${pkgdir}/etc/profile.d/cxoffice.csh
    chmod 755 ${pkgdir}/etc/profile.d/cxoffice.sh ${pkgdir}/etc/profile.d/cxoffice.csh

    # Fix Auto update error
    install -m 644 -D ${pkgdir}/opt/cxoffice/share/crossover/data/cxoffice.conf ${pkgdir}/opt/cxoffice/etc/cxoffice.conf
    sed -e 's!;;"PrivateShortcutDirs" = ""!"PrivateShortcutDirs" = "${HOME}/bin:${CX_ROOT}/bin"!' \
        -e 's!;;"PrivateLinuxNSPluginDirs" = ""!"PrivateLinuxNSPluginDirs" = "${MOZ_PLUGIN_PATH}"!' \
        -e 's!;;"PrivateLinux64NSPluginDirs" = ""!"PrivateLinux64NSPluginDirs" = "${MOZ_PLUGIN_PATH}"!' \
        -e 's!;;"ProductPackage" = ""!"ProductPackage" = "Converted from .deb to pacman."!' \
        -i ${pkgdir}/opt/cxoffice/etc/cxoffice.conf

    # place license in correct directory
    install -D -m644 ${pkgdir}/opt/cxoffice/doc/license.txt.gz ${pkgdir}/usr/share/licenses/${pkgname}/license.txt.gz
}