|
|
- # Maintainer: Daniel Bermond < yahoo-com: danielbermond >
- # Contributor: Pekka Helenius (~ Fincer) <fincer89@hotmail.com>
-
- # Enable Wine Staging? 1 = yes
- enable_staging=1
-
- # Staging patchsets. Default: all patchsets. Please see Wine Staging patchinstall.sh file for individual patchset names.
- staging_patchsets=(--all) # In order to disable all patchsets, use #(--all) and add desired patchsets individually here
-
- # Enable 32-bit compilation? 1 = yes
- enable_32=1
-
- # Enable 64-bit compilation? 1 = yes
- enable_64=1
-
- provides=('wine' 'wine-git' 'wine-staging' 'wine-staging-git' 'wine-staging-dxvk-git')
-
- if [[ enable_staging -eq 1 ]]; then
- pkgname=wine-staging-git
- pkgdesc="A compatibility layer for running Windows programs (staging branch, Git version)"
- url="https://github.com/wine-staging/wine-staging/"
- conflicts=('wine' 'wine-git' 'wine-staging')
- else
- pkgname=wine-git
- pkgdesc="A compatibility layer for running Windows programs (Git version)"
- url="https://source.winehq.org/git/wine.git/"
- conflicts=('wine' 'wine-staging' 'wine-staging-git')
-
- fi
-
- pkgver=stg.3.13.1.r11.g39cafb1d+wine.wine.3.13.r0.g25cc380b8e
- pkgrel=1
- arch=('i686' 'x86_64')
-
- license=('LGPL')
- _depends=(
- 'attr' 'lib32-attr'
- 'fontconfig' 'lib32-fontconfig'
- 'lcms2' 'lib32-lcms2'
- 'libxml2' 'lib32-libxml2'
- 'libxcursor' 'lib32-libxcursor'
- 'libxrandr' 'lib32-libxrandr'
- 'libxdamage' 'lib32-libxdamage'
- 'libxi' 'lib32-libxi'
- 'gettext' 'lib32-gettext'
- 'freetype2' 'lib32-freetype2'
- 'glu' 'lib32-glu'
- 'libsm' 'lib32-libsm'
- 'gcc-libs' 'lib32-gcc-libs'
- 'libpcap' 'lib32-libpcap'
- 'desktop-file-utils'
- 'vulkan-icd-loader' 'lib32-vulkan-icd-loader'
- )
- makedepends=(
- 'git'
- 'autoconf'
- 'ncurses'
- 'bison'
- 'perl'
- #'fontforge'
- 'flex'
- 'gcc>=4.5.0-2'
- 'giflib' 'lib32-giflib'
- 'libpng' 'lib32-libpng'
- 'gnutls' 'lib32-gnutls'
- 'libxinerama' 'lib32-libxinerama'
- 'libxcomposite' 'lib32-libxcomposite'
- 'libxmu' 'lib32-libxmu'
- 'libxxf86vm' 'lib32-libxxf86vm'
- 'libldap' 'lib32-libldap'
- 'mpg123' 'lib32-mpg123'
- 'openal' 'lib32-openal'
- 'v4l-utils' 'lib32-v4l-utils'
- 'alsa-lib' 'lib32-alsa-lib'
- 'libxcomposite' 'lib32-libxcomposite'
- 'mesa' 'lib32-mesa'
- 'libgl' 'lib32-libgl'
- 'opencl-icd-loader' 'lib32-opencl-icd-loader'
- 'libxslt' 'lib32-libxslt'
- 'libpulse' 'lib32-libpulse'
- 'libva' 'lib32-libva'
- 'gst-plugins-base-libs' 'lib32-gst-plugins-base-libs'
- 'samba'
- #'opencl-headers'
- #'gcc-multilib>=4.5.0-2'
- )
- optdepends=(
- 'giflib' 'lib32-giflib'
- 'libpng' 'lib32-libpng'
- 'libldap' 'lib32-libldap'
- 'gnutls' 'lib32-gnutls'
- 'mpg123' 'lib32-mpg123'
- 'openal' 'lib32-openal'
- 'v4l-utils' 'lib32-v4l-utils'
- 'libpulse' 'lib32-libpulse'
- 'alsa-plugins' 'lib32-alsa-plugins'
- 'alsa-lib' 'lib32-alsa-lib'
- 'libjpeg-turbo' 'lib32-libjpeg-turbo'
- 'libxcomposite' 'lib32-libxcomposite'
- 'libxinerama' 'lib32-libxinerama'
- 'ncurses' 'lib32-ncurses'
- 'opencl-icd-loader' 'lib32-opencl-icd-loader'
- 'libxslt' 'lib32-libxslt'
- 'libtxc_dxtn' 'lib32-libtxc_dxtn'
- 'libva' 'lib32-libva'
- 'gst-plugins-base-libs' 'lib32-gst-plugins-base-libs'
- 'vulkan-icd-loader' 'lib32-vulkan-icd-loader'
- 'cups'
- 'samba'
- 'dosbox'
- )
- # lib32-libtxc_dxtn
- # 'gtk3' 'lib32-gtk3'
- options=('staticlibs')
-
- source=(wine-git::'git://source.winehq.org/git/wine.git'
- '30-win32-aliases.conf'
- )
-
- if [[ $(find ./custom_patches -mindepth 1 -maxdepth 1 -name "*.patch") ]]; then
- cp ./custom_patches/*.patch ./
- let p=0
- for patch in $(find . -mindepth 1 -maxdepth 1 -name "*.patch"); do
- patches[$p]="$(basename ${patch})"
- let p++
- done
- unset p
- source+=(${source[@]} ${patches[@]})
- fi
-
- if [[ enable_staging -eq 1 ]]; then
- stagingsrc=wine-staging-git::'git://github.com/wine-staging/wine-staging.git'
- source+=($stagingsrc)
- fi
-
- if [[ "$CARCH" == "i686" ]]; then
- # Strip lib32 etc. on i686
- _depends=(${_depends[@]/*32-*/})
- makedepends=(${makedepends[@]/*32-*/} ${_depends[@]})
- makedepends=(${makedepends[@]/*-multilib*/})
- optdepends=(${optdepends[@]/*32-*/})
- else
- makedepends=(${makedepends[@]} ${_depends[@]})
- fi
-
- pkgver() {
-
- msg2 "Setting Wine versions..."
- if [[ enable_staging -eq 1 ]]; then
- cd "${srcdir}/wine-staging-git"
- _staging_tag="$(git tag | sort -Vr | head -n1 | sed 's/-/./g;s/^v//')"
- _staging_version="stg.$(git describe --long \
- | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//' \
- | sed "s/^latest.release/${_staging_tag}/")"
- fi
-
- cd "${srcdir}/wine-git"
- _wine_version="wine.$(git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g')"
-
- if [[ enable_staging -eq 1 ]]; then
- printf "%s+%s" "$_staging_version" "$_wine_version"
- else
- printf "%s" "$_wine_version"
- fi
- }
-
- prepare() {
-
- if [[ enable_staging -eq 1 ]]; then
- cd "$srcdir"/wine-git
-
- msg2 "Cleaning the wine source code tree..."
-
- # Restore the wine tree to its git origin state, without wine-staging patches
- #+(necessary for reapllying wine-staging patches in succedent builds,
- #+otherwise the patches will fail to be reapplied)
- git reset --hard HEAD # Restore tracked files
- git clean -d -x -f # Delete untracked files
-
- # Change back to the wine upstream commit that this version of wine-staging is based in
- git checkout $(../"$pkgname"/patches/patchinstall.sh --upstream-commit)
- fi
- }
-
- build() {
- cd "${srcdir}"
-
- # Delete old build dirs (from previous builds) and make new ones
- rm -rf "$pkgname"-{32,64}-build
- mkdir --parents "$pkgname"-32-build
-
- if [[ enable_staging -eq 1 ]]; then
- # Apply all wine-staging patches
- msg2 "Applying wine-staging patches..."
- ./wine-staging-git/patches/patchinstall.sh DESTDIR="${srcdir}/wine-git" \
- ${staging_patchsets[*]}
- fi
-
- if [[ $(ls "${srcdir}"/*.patch | wc -w) -ne 0 ]]; then
-
- cd "${srcdir}"/wine-git
- # Apply all custom patches
- msg2 "Applying custom patches..."
-
- for i in "${srcdir}"/*.patch; do
- patch -Np1 < ${i}
- done
- fi
-
- cd "${srcdir}"
-
- # Build wine 64-bit
- #+(according to the wine wiki this 64-bit/32-bit building order is mandatory)
-
- if [[ "$CARCH" = "x86_64" ]] && [[ enable_64 -eq 1 ]]; then
- msg2 "Building Wine-64..."
-
- mkdir --parents "$pkgname"-64-build
- cd "$pkgname"-64-build
-
- ../wine-git/configure \
- --with-x \
- --with-gstreamer \
- --enable-win64 \
- --with-xattr \
- --disable-mscoree \
- --with-vulkan \
- --prefix=/usr \
- --libdir=/usr/lib
- make
-
- _wine32opts=(
- --libdir=/usr/lib32
- --with-wine64="${srcdir}/${pkgname}-64-build"
- )
-
- export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
- fi
-
- # Build wine 32-bit
-
- if [[ enable_32 -eq 1 ]]; then
- msg2 "Building Wine-32..."
-
- cd "$srcdir"/"$pkgname"-32-build
-
- ../wine-git/configure \
- --with-x \
- --with-gstreamer \
- --with-xattr \
- --disable-mscoree \
- --with-vulkan \
- "${_wine32opts[@]}" \
- --prefix=/usr
- make
- fi
-
- if [[ ! enable_32 -eq 1 ]] && [[ ! enable_64 -eq 1 ]]; then
- msg2 "You must define at least one architecture in PKGBUILD! Aborting"
- exit 1
- fi
- }
-
- package() {
- depends=(${_depends[@]})
-
- # Package wine 32-bit
- #+(according to the wine wiki this reverse 32-bit/64-bit packaging order is important)
-
- if [[ $enable_32 -eq 1 ]]; then
-
- msg2 "Packaging Wine-32..."
-
- cd "$srcdir"/"$pkgname"-32-build
-
- if [ "$CARCH" = "i686" ]; then
-
- make prefix="$pkgdir/usr" install
-
- else
- make prefix="${pkgdir}/usr" \
- libdir="${pkgdir}/usr/lib32" \
- dlldir="${pkgdir}/usr/lib32/wine" install
- fi
- fi
-
- # Package wine 64-bit
-
- if [[ "$CARCH" == "x86_64" ]] && [[ enable_64 -eq 1 ]]; then
- msg2 "Packaging Wine-64..."
-
- cd "$srcdir"/"$pkgname"-64-build
-
- make prefix="${pkgdir}/usr" \
- libdir="${pkgdir}/usr/lib" \
- dlldir="${pkgdir}/usr/lib/wine" install
-
- if [[ enable_dxvk -eq 1 ]]; then
- mv "$srcdir"/dxvk-compiled/x64/{d3d11.dll,dxgi.dll} "${pkgdir}/usr/lib/wine/fakedlls/"
- chmod 644 "${pkgdir}/usr/lib/wine/fakedlls/"{d3d11.dll,dxgi.dll}
- mv "$srcdir"/dxvk-compiled/x32/{d3d11.dll,dxgi.dll} "${pkgdir}/usr/lib32/wine/fakedlls/"
- chmod 644 "${pkgdir}/usr/lib32/wine/fakedlls/"{d3d11.dll,dxgi.dll}
- fi
-
- fi
-
- # Font aliasing settings for Win32 applications
- install -d "$pkgdir"/etc/fonts/conf.{avail,d}
- install -m644 "${srcdir}/30-win32-aliases.conf" "${pkgdir}/etc/fonts/conf.avail"
- ln -s ../conf.avail/30-win32-aliases.conf "${pkgdir}/etc/fonts/conf.d/30-win32-aliases.conf"
- }
- md5sums=('SKIP'
- '1ff4e467f59409272088d92173a0f801'
- 'SKIP'
- '1ff4e467f59409272088d92173a0f801'
- '4228291253f5e94b793e5b0e6acab6a1'
- '16f24605c2f46404e4db1c89dbf307a6'
- '69169c9d32f51ec7af98570061261a2d'
- 'c11dfdfda50dc4c05d2f7ef8eef01e70'
- '958fcdea1a455786a22e09a6afc0adaf'
- '711c39eeb131ff30e2bfb68ea27d4040'
- '3474c0d9e65cefc223c0a43cd5b21ce1'
- 'f58a4e17b33bd96ce0d6e8325cad7f76'
- '18e99ddef0c5ae3bd1b03781ffb1d614'
- 'e833694fa978a26ad3254d43ca6127e1'
- 'SKIP')
|