[arch-multilib] wine x86_64 crash

Robert Meijers robert.meijers at gmail.com
Mon Sep 6 14:22:09 EDT 2010


Op maandag 06 september 2010 18:52:53 schreef Rémy Oudompheng:
> Harvey <harv at gmx.de> wrote:
> > Jonathan,
> > 
> >> I think you'll need lib32-freetype2 and lib32-libxext
> > 
> > both _are_ installed. There must be another cause.
> 
> Could you post the full error message (including the command which
> spawned them) and/or your PKGBUILD ?

Commenting out everything between an "if [[ $CARCH" seems to be to much 
because then it doesn't use the right library path and there are some other 
"patches" for other problems when compiling Wine on 64 bit.

When using the attached PKGBUILD it at least starts compiling (didn't wait for 
the full compilation to complete). If the application runs using this 
PKGBUILD, you can also try packaging again without the modified CFLAGS, it 
could also be a problem between the "linking" of Wine64 and Wine.
-------------- next part --------------
# $Id: PKGBUILD 25288 2010-09-03 19:52:00Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh at lutzhaase.com>
# Contributor: Jan "heftig" Steffens <jan.steffens at gmail.com>
# Contributor: Eduardo Romero <eduardo at archlinux.org>
# Contributor: Giovanni Scafora <giovanni at archlinux.org>

pkgname=wine
pkgver=1.3.2
pkgrel=1

_pkgbasever=${pkgver/rc/-rc}

source=(http://ibiblio.org/pub/linux/system/emulators/$pkgname/$pkgname-$_pkgbasever.tar.bz2)
md5sums=('dae0c3e24ca2e4db4d79308fadffc02c')

pkgdesc="A compatibility layer for running Windows programs"
url="http://www.winehq.com"
arch=(i686 x86_64)
license=(LGPL)

depends=(
  fontconfig      lib32-fontconfig
  mesa            lib32-mesa 
  libxcursor      lib32-libxcursor
  libxrandr       lib32-libxrandr
  libxdamage      lib32-libxdamage
  libxxf86dga     lib32-libxxf86dga
  alsa-lib        lib32-alsa-lib
)

makedepends=(autoconf ncurses bison perl fontforge flex prelink
  'gcc>=4.5.0-2'  'gcc-multilib>=4.5.0-2'
  giflib          lib32-giflib
  libxpm          lib32-libxpm
  libpng          lib32-libpng
  libxinerama     lib32-libxinerama
  libxcomposite   lib32-libxcomposite
  libxmu          lib32-libxmu
  libxxf86vm      lib32-libxxf86vm
  libxml2         lib32-libxml2
  libxslt         lib32-libxslt
  libldap         lib32-libldap
  lcms            lib32-lcms
  mpg123          lib32-mpg123
  openal          lib32-openal
  jack            lib32-jack
  libcups         lib32-libcups
  gnutls          lib32-gnutls
  v4l-utils       lib32-v4l-utils
)
  
optdepends=(
  giflib          lib32-giflib
  libpng          lib32-libpng
  libldap         lib32-libldap
  lcms            lib32-lcms
  libxml2         lib32-libxml2
  mpg123          lib32-mpg123
  openal          lib32-openal
  jack            lib32-jack
  libcups         lib32-libcups
  gnutls          lib32-gnutls
  v4l-utils       lib32-v4l-utils
)

if [[ $CARCH == i686 ]]; then
  # Strip lib32 etc. on i686
  depends=(${depends[@]/*32-*/})
  makedepends=(${makedepends[@]/*32-*/})
  makedepends=(${makedepends[@]/*-multilib*/})
  optdepends=(${optdepends[@]/*32-*/})
else
  provides=("bin32-wine=$pkgver" "wine-wow64=$pkgver")
  conflicts=('bin32-wine' 'wine-wow64')
  replaces=('bin32-wine')
fi

build() {
  cd "$srcdir"

  export CFLAGS="-march=i686 -m32"

  # Allow ccache to work
  mv $pkgname-$_pkgbasever $pkgname

  # Get rid of old build dirs
  rm -rf $pkgname-{32,64}-build
  mkdir $pkgname-32-build

  if [[ $CARCH == x86_64 ]]; then
    # Wine32 build needs a patched ldd
    # Do it here until it's patched in glibc
    cp /usr/bin/ldd "$srcdir/ldd"
    sed -i '/^RTLDLIST=/s:"$: /lib/ld-linux.so.2&:' "$srcdir/ldd"

    _wine32opts=(
      LDD="$srcdir/ldd"
      --libdir=/usr/lib32
    )

    export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
  fi

  msg2 "Building Wine-32..."
  cd "$srcdir/$pkgname-32-build"
  ../$pkgname/configure \
    --prefix=/usr \
    --sysconfdir=/etc \
    --with-x \
    "${_wine32opts[@]}"

  make
}

package() {
  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

    msg2 "Packaging Wine-64..."
    cd "$srcdir/$pkgname-64-build"
    make prefix="$pkgdir/usr" \
      libdir="$pkgdir/usr/lib" \
      dlldir="$pkgdir/usr/lib/wine" install
  fi
}

# vim:set ts=8 sts=2 sw=2 et:


More information about the arch-multilib mailing list