Guida: compilare wine da sorgenti e creare pacchetto .deb in ubuntu
Scritto da: monolite in Guide, Linux, Ubuntu, tags: compilare, pacchettizzare, sorgenti, wine
Prima di tutto…
- installare ciò che ci occorre per pacchettizzare con:
sudo apt-get install devscripts dh-make make build-essential dpkg apt fakeroot
- Estrarre i sorgenti sulla scrivania dopo averli decompressi ottenendo la cartella ad es. wine-1.1.5
- Copiare eventuali patch da aggiungere a wine nella cartella wine-1.1.5
- Da terminale portarsi nella directory di wine 1.1.5 e dare nell’ordine
- patch -p1 < il_nome_della_patch (da dare in presenza di patch altrimenti passare al punto successivo)
- ./configure
- make depend && make -j4
- dh_make -s -e sostituireconla@tuamail -n -c gpl
- debuild binary
Note:
Dopo aver dato il comando ./configure al termine della configurazione potremmo notare un messaggio che ci avverte della mancanza di alcune librerire, per far si che la configurazione venga portata a buon termine segnarsi quali librerie mancano, cercare con synaptic o con sudo aptitude search nome libreria, tali librerie ovviamente accertandosi di installare i file dev delle librerie. Una volta installate le librerie ridare il comando ./configure e continuare nei passaggi.
Il comando -j4 velocizza la compilazione se siamo in presenza di processori con più core; la scelta del numero da scegliere viene fatta in base al numero dei core con l’aggiunta di una o massimo due unità, quindi se abbiamo 2 core il numero sarà -j3 o al max -j4
Prima di dare debuild binary modificare il file control contenuto nella cartella debian creata in wine-1.1.5, in modo che sia come questa (ovviamente sostituire nome e mail con i vostri nella voce Maintainer)
Source: wine
Section: otherosfs
Priority: extra
Maintainer: nome <vostra@mail>
Build-Depends: debhelper (>= 5), autotools-dev, dpkg (>= 1.14.12ubuntu3)
Standards-Version: 3.7.2
Package: wine
Architecture: any
Depends: binfmt-support (>= 1.1.2), libasound2 (>> 1.0.14), libaudio2, libaudiofile0 (>= 0.2.3-4), libc6 (>= 2.4), libesd-alsa0 (>= 0.2.35) | libesd0 (>= 0.2.35), libgl1-mesa-glx | libgl1, libglu1-mesa | libglu1, libgphoto2-2 (>= 2.4.0), libgphoto2-port0 (>= 2.4.0), libice6 (>= 1:1.0.0), liblcms1 (>= 1.15-1), libldap-2.4-2 (>= 2.4.7), libsm6, libx11-6, libxau6, libxext6, libxml2 (>= 2.6.27), libxslt1.1 (>= 1.1.20), libxt6
Recommends: winbind
Suggests: msttcorefonts, xdg-utils
Conflicts: binfmt-support (<< 1.1.2), libwine, libwine-alsa, libwine-arts, libwine-capi, libwine-cms, libwine-esd, libwine-gl, libwine-gphoto2, libwine-jack, libwine-ldap, libwine-nas, libwine-print, libwine-sane, libwine-twain, wine-doc, wine-utils, winesetuptk, xwine
Replaces: libwine-alsa, libwine-arts, libwine-capi, libwine-cms, libwine-esd, libwine-gl, libwine-gphoto2, libwine-jack, libwine-ldap, libwine-nas, libwine-print, libwine-sane, libwine-twain, wine-doc, wine-utils, winesetuptk, xwine
Description: Microsoft Windows Compatibility Layer (Binary Emulator and Library)
Wine is a compatibility layer for running Windows applications on Linux.
Applications are run at full speed without the need of cpu emulation. Wine
does not require Microsoft Windows, however it can use native system dll
files in place of its own if they are available.
.
This package includes a program loader for running unmodified Windows executables
as well as the Wine project’s free version of the Windows API for running programs
ported from Windows.
.
Homepage: http://www.winehq.org/
Original-Maintainer: Scott Ritchie
Nella compilazione normalmente i passaggi sono:
- ./configure
- make
- dh_make -s -e sostituireconla@tuamail -n -c gpl
- debuild binary
Ovviamente prima di debuild binary modificare il file control, potete seguire come canovaccio l’esempio di prima:)

Articoli (RSS)
Due consigli:
la via “canonica” impone un numero di un unità superiore al numero dei core del processore, in caso del dualcore quindi sarà -j3, io tendo però a non oltrepassare mai il doppio del numero dei core quindi con un dual core non vado mai oltre -j4…
il make -j6 mi sembra un pò esagerato
al posto di debuild binary io utilizzerei o pbuilder o in alternativa “dpkg-buildpackage -us -uc -rfakeroot” ma è una pura considerazione personale.
Aggiungo:
è inutile pacchettizzare i sorgenti dato che sono disponibili già pacchettizzati all’interno del repo ufficiale di winehq.
Ha più senso invece, secondo me, clonarsi il trunk git e compilarsi quello
Concordo con tutto quello che hai detto…in effetti 6 + un po’ esagerato:)hihihih…
Ho scritto questa miniguida più che altro per poterla usare in caso di patch da aggiungere…però mi son dimenticato di inserire:) adesso aggiungo anche quello…
Ad esempio nel caso di spore, la versione 1.1.4 aveva bisogno di essere patchata:) e in questo modo si da un minimo di istruzioni alla creazione di un pacchetto…debuild binary non da alla fine lo stesso comando di dpkg-build…ecc…mi sembra di si….o fa altro? cmq. grazie dei consigli alcuni li sapevo ma è bene ripassare….
Per quanto riguarda i git…non so….alla fine wine viene aggiornato ogni 2 settimane e quindi si può usare una versione stabile…preferisco quella che tanto è già abbastanza aggiornata.
Aggiungo la cosa dei -j:)
Grazie:)