Wine 1.7.0 aus Source - HowTo

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
mogschiedler
Beiträge: 1
Registriert: 08.08.2013 10:52:54

Wine 1.7.0 aus Source - HowTo

Beitrag von mogschiedler » 08.08.2013 11:35:05

Hallo Gemeinde,

da es oftmals Schwierigkeiten bei der Kompilierung von Wine gibt, welche auch ich hatte,
möchte ich meine Vorgehensweise und zusammengesammelten Werke vorstellen.

Ich hoffe es hilft Euch ein wenig.

Mein System:
Acer Aspire V3-571G
Debian wheezy 64bit
Kernel: 3.2.0-4-amd64

Wine sollte in einer 32bit Umgebung erstellt werden.
am besten in einer sauberen chroot

Vorbereitungen:

Code: Alles auswählen

apt-get install schroot debootstrap

cat << EOF > /etc/schroot/chroot.d/wheezy_i386.conf
>[wheezy_i386]
>description=Debian wheezy
>personality=linux32
>directory=/srv/chroot/wheezy_i386
>root-users=_eigener_Benutzername_
>type=directory
>users=_eigener_Benutzername_
mit STRG-D beenden

Basissystem erstellen:

Code: Alles auswählen

mkdir -p /srv/chroot/wheezy_i386
debootstrap --variant=buildd --arch=i386 wheezy /srv/chroot/wheezy_i386 http://ftp.au.debian.org/debian/
cp -v /etc/resolv.conf /srv/chroot/wheezy_i386/etc/resolv.conf
cp -v /etc/apt/sources.list /srv/chroot/wheezy_i386/etc/apt/
Nun wechseln wir in die chroot Umgebung

Code: Alles auswählen

schroot -c wheezy_i386 -u root
Vorbereitungen innerhalb der chroot

Code: Alles auswählen

apt-get update
apt-get install locales sudo vim nano
echo 'export LC_ALL="C"'>>/etc/bash.bashrc
echo 'export LANG="C"'>>/etc/bash.bashrc
source /etc/bash.bashrc
Nun brauchen wir noch diversen anderen Kram

Code: Alles auswählen

apt-get install libx11-dev:i386 libfreetype6-dev:i386 libxcursor-dev:i386 libxi-dev:i386 libxxf86vm-dev:i386 libxrandr-dev:i386 libxinerama-dev:i386 libxcomposite-dev:i386 libglu-dev:i386 libosmesa-dev:i386 libglu-dev:i386 libosmesa-dev:i386 libdbus-1-dev:i386 libgnutls-dev:i386 libncurses-dev:i386 libsane-dev:i386 libv4l-dev:i386 libgphoto2-2-dev:i386 liblcms-dev:i386 libgstreamer-plugins-base0.10-dev:i386 libcapi20-dev:i386 libcups2-dev:i386 libfontconfig-dev:i386 libgsm1-dev:i386 libtiff-dev:i386 libpng-dev:i386 libjpeg-dev:i386 libmpg123-dev:i386 libopenal-dev:i386 libldap-dev:i386 libxrender-dev:i386 libxml2-dev:i386 libxslt-dev:i386 libhal-dev:i386 libcurl4-openssl-dev:i386 gettext:i386 prelink:i386 bzip2:i386 bison:i386 flex:i386 oss4-dev:i386 checkinstall:i386 ocl-icd-libopencl1:i386 opencl-headers:i386 libasound2-dev:i386 build-essential python-software-properties git

Code: Alles auswählen

apt-get build-dep wine
Jetzt müssen wir uns Wine noch holen

Code: Alles auswählen

cd /usr/src
git clone git://source.winehq.org/git/wine
und Wine erstellen
es könnten eventuelle Hinweise, oder Fehler auftreten von fehlenden Bibliotheken, die einfach nachinstallieren

Code: Alles auswählen

cd wine
./configure
time make -j4
Dies sollte ein paar Minuten dauern und wenn wir fertig sind bauen wir uns schnell ein Packet

Code: Alles auswählen

checkinstall --install=no
das sieht dann ungefähr so aus:

Code: Alles auswählen

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran This software is released under the GNU GPL. 
The package documentation directory ./doc-pak does not exist. 
Should I create a default set of package docs? [y]: 

Preparing package documentation...OK 
Please write a description for the package. End your description with an empty line or EOF. 
>> wine 1.7.0 
>> 
***************************************** 
**** Debian package creation selected *** 
***************************************** 
This package will be built according to these values: 
0 - Maintainer: [ ] 
1 - Summary: [ wine 1.7.0 ] 
2 - Name: [ wine ] 
3 - Version: [ 1.7.0 ] 
4 - Release: [ 1 ] 
5 - License: [ GPL ] 
6 - Group: [ checkinstall ] 
7 - Architecture: [ i386 ] 
8 - Source location: [ wine-1.7.0 ] 
9 - Alternate source location: [ ] 
10 - Requires: [ ] 
11 - Provides: [ wine ] 
12 - Conflicts: [ ] 
13 - Replaces: [ ]
chroot wieder verlassen und weiter gehts wieder auf dem Hostsystem

Code: Alles auswählen

dpkg --add-architecture i386
apt-get update
apt-get install ia32-libs
Das Debian Packet kopieren und installieren

Code: Alles auswählen

cp -v /srv/chroot/wheezy_i386/usr/src/wine/wine_1.7.0_i386.deb /home/$USERNAME
chown $USER wine_1.7.0_i386.deb
dpkg -i wine_1.7.0_i386.deb
Das wars dann auch schon,
ich hoffe es funktioniert bei Euch genausogut, wie bei mir.
Zuletzt geändert von mogschiedler am 11.11.2013 21:45:43, insgesamt 1-mal geändert.

Gunman1982
Beiträge: 923
Registriert: 09.07.2008 11:50:57
Lizenz eigener Beiträge: MIT Lizenz

Re: Wine 1.7.0 aus Source - HowTo

Beitrag von Gunman1982 » 08.08.2013 15:19:13

Diese Infos wären warcheinlich im Wiki besser/nachhaltiger aufgehoben. http://wiki.debianforum.de/Wine

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Wine 1.7.0 aus Source - HowTo

Beitrag von rendegast » 11.11.2013 10:43:29

Ich mache noch ein paar mounts für das chroot

Code: Alles auswählen

func2() {
mount /proc     ${chr_path}/proc                --bind
mount /sys      ${chr_path}/sys         --bind
mount /dev      ${chr_path}/dev         --bind
mount /dev/pts  ${chr_path}/dev/pts     --bind                  # dev/pts/ wird von apt benutzt
#mount /dev/shm ${chr_path}/dev/shm/    --bind

#mount tmpfs    ${chr_path}/dev/shm/    -t tmpfs                # mittlerweile ein Link ->/run/shm
#mount tmpfs    ${chr_path}/run/                -t tmpfs
mount /run      ${chr_path}/run/                --bind                  # 'rbind'?, wegen lock/ und ..?
}

Dadurch kann das chroot aber auch auf das "Host"-System zugreifen.
Erwägungssache.



Eventuell noch libs/header der nonfree-Treiber?
fglrx / fglrx-legacy / nvidia (nvidia-legacy)?
(obwohl die wine-Sourcen scheinbar keinen Gebrauch davon machen)




------------------------------------------------------------
Dieses checkinstall machte beim gegenwärtigen wine 1.7.6 Probleme,
es brach ab mit Hinweis auf nicht erstellbare Verzeichnisse.
(Ein eingeschlichener Bug? Bisher so nicht beobachtet.)
Nach mehrmaligem Durchnudeln, ich erstelle ich im chroot vor dem checkinstall-Durchlauf:

Code: Alles auswählen

mkdir -p /usr/share/wine
mkdir -p /usr/include/wine/windows
mkdir -p /usr/include/wine/msvcrt
mkdir -p /usr/share/man/de.UTF-8
mkdir -p /usr/share/man/fr.UTF-8
mkdir -p /usr/share/man/pl.UTF-8
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten