Ohjelmistokehityksessäforkkaus elihaarautus on termi, jolla viitataan siihen, kun ohjelmistosta tehdään kopio, jota aletaan kehittää itsenäisenä projektina. Forkkaus voi johtua kehittäjäyhteisön ajautumisesta erimielisyyksiin tai tarpeesta luoda ohjelmistosta toisenlainen versio toista käyttötarkoitusta tai toista käyttäjäryhmää varten.[1][2]
Forkkaus on yleistäavoimen lähdekoodin projekteissa, joista saa laillisesti julkaista muunneltuja versioita.Tavaramerkki voi rajoittaa forkkaamista tietyissä määrin.[3][4]
Yleisesti uudessa haarassa ei voi muuttaa käytettyälisenssiä ilman alkuperäisentekijänoikeuden haltijan/haltijoiden suostumusta:copyleft-lisenssit vaativat johdetun työn (engl.derivative work) käyttävän samaa tai yhteensopivaa lisenssiä.[5] Jotkin lisenssit vaativat vain alkuperäisen tekijänoikeusmaininnan säilyttämisen myös muunnelluissa teoksissa.[6]
Esimerkkitapaus forkkaamisesta onTatu Ylösen kehittämäSSH, jonka lisenssin Ylönen muutti kaupalliseksi perustaessaanSSH Communications Security -yrityksen.[3]OpenBSD-projekti etsi vanhemman version lähdekoodeista (1.2.12), jossa oli vapaampi lisenssi ja josta tuliOpenSSH vuonna 1999.[3] Osana OpenSSH-projektissa lähdekoodi kirjoitettiin uudelleen niiltä osin kuin se riippui kolmannen osapuolen lisensseistä, saattoi rikkoaohjelmistopatentteja tai olla kryptografisen ohjelmiston maastavientikiellon alaista.[3]
Forkkausta on käytetty ohjelmistokehityksessä myösversionhallintahaaran tekemisessä joSource Code Control Systemin termistössä.[7]
Termiä on käytettyUsenetissä vuonna 1983 liittyen viestittämiseen toiseen ryhmään.[8]
Unix-käyttöjärjestelmän menetelmä lapsiprosessin luomiseen kutsutaan myös forkkaukseksifork()
-kutsun mukaan.[9][10]