1. JOHDANTO

Wine on ohjelma, jonka avulla Windows-ohjelmia (mukaan luettuna DOS-,
Windows 3.x, Win32 ja Win64 -ohjelmat) voi ajaa Unix-järjestelmissä.
Wine koostuu ohjelmanlataajasta, joka lataa ja käynnistää Windowsin
ohjelmatiedostoja, sekä kirjastosta nimeltä Winelib, joka toteuttaa
Windowsin API-kutsuja niiden Unix- ja X11-vastineiden avulla. Kirjaston
avulla voidaan myös kääntää Windows-koodia natiiveiksi Unix-ohjelmiksi.

Wine on vapaa ohjelma, ja se on julkaistu GNU LGPL:n alaisena; lisätietoja
lisenssistä on englanniksi tiedostossa LICENSE.

2. PIKAOPAS

Kun Wine käännetään lähdekoodeistaan, on suositeltavaa käyttää Winen omaa
asennusohjelmaa, joka ajetaan seuraavalla komennolla Winen lähdekoodin
juurihakemistosta:

./tools/wineinstall

Ohjelmat ajetaan komennolla "wine ohjelma". Lisätietoja sekä apua ongelmien
ratkaisemiseen on jäljempänä tässä tiedostossa, Winen man-sivuilla sekä
ennen kaikkea Internetissä osoitteessa http://www.winehq.org/.


3. JÄRJESTELMÄVAATIMUKSET

Winen kääntämiseen tarvitaan jokin seuraavista:

  Linuxin versio 2.0.36 tai uudempi
  FreeBSD 8.0 tai uudempi
  Solaris x86 9 tai uudempi
  NetBSD-current
  Mac OS X 10.5 tai uudempi

Wine vaatii kerneliltä tuen säikeille. Tämän takia toistaiseksi vain yllä
mainittuja käyttöjärjestelmiä tuetaan; tulevaisuudessa saatetaan lisätä tuki
muillekin käyttöjärjestelmille, joissa on tarvittava tuki säikeille.

Tietoa FreeBSD:lle:
  Pääsääntöisesti Wine ei toimi vanhemmilla versioilla kuin FreeBSD 8.0.
  Osoitteessa http://wiki.freebsd.org/Wine kerrotaan tästä lisää.

Tietoa Solarikselle:
  Wine täytyy luultavasti kääntää GNU-työkaluilla (gcc, gas jne.).
  Varoitus: vaikka gas olisi asennettu, ei ole varmaa, että gcc käyttää sitä;
  voi olla tarpeen joko kääntää gcc uudestaan tai luoda symboliset linkit
  ohjelmista "cc", "as" ja "ld" vastaaviin GNU-työkaluihin.

Tietoa NetBSD:lle:
  USER_LDT, SYSVSHM, SYSVSEM ja SYSVMSG täytyy aktivoida kernelistä.

Tietoa Mac OS X:lle:
  Winen onnistuneeseen kääntämiseen x86:lla tarvitaan Xcode 2.4 tai uudempi.
  Mac-ajuri vaatii OS X 10.6:n tai uudemman, ja sitä ei käännetä 10.5:ssä.


Tuetut tiedostojärjestelmät:
  Wine toimii useimmilla tiedostojärjestelmillä, mutta Samban kanssa on
  ilmoitettu ilmenevän ongelmia. Myöskään NTFS ei tue kaikkia ominaisuuksia,
  joita jotkin ohjelmat vaativat. Natiivin Unix-tiedostojärjestelmän käyttö
  on suotavaa.

Perusvaatimukset:
  Koneella täytyy olla X11:n kehitystiedostot (Debianissa xlib6g-dev,
  Red Hatissa XFree86-devel).

  Luonnollisesti myös make (yleensä GNU make) on tarpeen.

  Lisäksi tarvitaan flex 2.5.33 tai uudempi sekä bison.

Valinnaisia tukikirjastoja:
  configure-skripti näyttää varoituksia, kun valinnaisia kirjastoja puuttuu.
  Osoitteessa http://wiki.winehq.org/Recommended_Packages on tietoa, mitkä
  paketit ovat hyödyksi.

  64-bittisissä järjestelmissä täytyy olla kirjastojen 32-bittiset versiot
  32-bittistä Wineä varten. Sivulla http://wiki.winehq.org/WineOn64bit
  kerrotaan tästä lisää. Sivulla http://wiki.winehq.org/Wine64 kerrotaan
  64-bittisen Winen kääntämisestä (erikseen tai 32-bittisen version kanssa).

4. KÄÄNTÄMINEN

Aiemmin mainitun wineinstall-skriptin sijaan Winen voi kääntää myös
seuraavilla komennoilla:

./configure
make

Tämä kääntää ohjelman "wine" sekä lukuisia tukikirjastoja ja -ohjelmia.
Ohjelma "wine" lataa ja käynnistää Windows-ohjelmia.
Kirjastoa "libwine" ("Winelib") voidaan käyttää Windows-lähdekoodin
kääntämiseen Unixissa.

Komento './configure --help' näyttää asetuksia ja valintoja, joita
käännösprosessiin voi lisätä.

5. ASENNUS

Kun Wine on käännetty, komento "make install" asentaa Winen sekä sen man-sivut
ja joitakin muita hyödyllisiä tiedostoja.

Ennen asennusta pitää muistaa poistaa aiemmat Winen versiot. Poistamista
voi yrittää komennolla "dpkg -r wine", "rpm -e wine" tai "make uninstall".

Kun Wine on asennettu, voidaan ajaa asetusohjelma "winecfg". Sivustolla
http://www.winehq.org/ kohdassa Support on englanninkielisiä lisäohjeita.


6. OHJELMIEN AJAMINEN

Winelle voi antaa joko ohjelmatiedoston koko polun tai pelkän nimen.

Esimerkiksi Notepad eli Muistio voitaisiin ajaa näin:

        wine notepad               (ohjelma yritetään löytää Winen
        wine notepad.exe            rekisterissä luetelluista paikoista)

        wine c:\\windows\\notepad.exe  (kokonainen DOS-polku)

        wine ~/.wine/drive_c/windows/notepad.exe  (kokonainen Unix-polku)

        wine notepad.exe readme.txt  (ajetaan ohjelma parametrin kanssa)

Wine ei ole täydellinen, joten on mahdollista, että jotkin ohjelmat kaatuvat.
Siinä tapauksessa komentoriville tulostuu virheloki, joka on syytä liittää
mukaan, jos raportoi virheestä.


7. LISÄTIETOJA

WWW:	Winestä on paljon tietoa WineHQ:ssa, http://www.winehq.org/.
	Oppaita, ohjelmatietokanta sekä Bugzilla vikojen listaamiseen.
	Täältä kannattaa yleensä aloittaa.

Kysymyksiä:
	Sivulle http://www.winehq.org/FAQ on koottu kysymyksiä ja vastauksia.

Wiki:	Wine Wiki on osoitteessa http://wiki.winehq.org/.

Postituslistat:
	Winen käyttäjille ja kehittäjille on joitakin postituslistoja,
	sivulla http://www.winehq.org/forums kerrotaan niistä lisää.

Virheet:
	Ilmoita virheistä Winen Bugzillaan, http://bugs.winehq.org/.
	Katso kuitenkin ensin Bugzilla-tietokannasta, onko samasta asiasta
	ilmoitettu jo aiemmin.

IRC:	Online-apua voi saada kanavalta #WineHQ palvelimella irc.freenode.net.

Git:	Winen tämänhetkinen kehitysversio on jaossa Git-järjestelmän kautta.
	Sivulla http://www.winehq.org/git kerrotaan tästä lisää.


Jos lisäät jotain tai korjaat jonkin virheen, lähetä toki muutoksesi
(mieluiten komennon git-format-patch avulla) listalle wine-patches@winehq.org,
jotta se voidaan lisätä Winen seuraavaan versioon.

--
Alkuperäisen version tekstistä on kirjoittanut
Alexandre Julliard
julliard@winehq.org

Suomeksi kääntänyt
Lauri Kenttä
lauri.kentta@gmail.com
