Izvorna nadogradnja je poboljšanje izvornog koda računalnog programa ili koda iz kojeg je program stvoren. Najčešće promjene nadogradnje izvora su nove značajke, ispravci pogrešaka i poboljšanja stabilnosti. Zakrpe stvaraju programeri softvera i objavljuju se javnosti; oni su obično besplatni, iako neki programeri mogu naplatiti zakrpu. Ako je program otvorenog koda, tada korisnik može izvršiti vlastite izvorne nadogradnje mijenjajući izvorni kod. Kada se napravi izvorni port, stari program ili igra se mijenja tako da može raditi na modernoj opremi, ali program ili igra ostaju relativno isti.
Nakon što je program razvijen, razvojni tim će obično raditi na stvaranju izvornih paketa za nadogradnju. Razlozi za to uključuju izdavanje nove verzije softvera i nadogradnju izvornog proizvoda. Najčešće promjene koje proizlaze iz nadogradnje izvora su nove funkcije, stvaranje bugova ili propusta i popravak problema; Snaga i stabilnost programa također se mogu poboljšati. Obično, kada se objavi izvorna nadogradnja, korisnik će je samo preuzeti i nadogradnja će promijeniti izvorni izvorni kod; korisnik mora obaviti vrlo malo posla da nadogradi program.
Kada se napravi izvorna nadogradnja, obično se naziva zakrpa. Programer izrađuje zakrpu, a korisnik preuzima zakrpu kako bi je aktivirao. Na primjer, kada računalo automatski preuzme nadogradnju ili se pojavi dijaloški okvir koji kaže da je nadogradnja dostupna, zakrpa je ono što računalo preuzima i primjenjuje. Većina zakrpa je besplatna, iako programer može naplatiti zakrpu koja u potpunosti mijenja program.
Zakrpe programa otvorenog koda obično izrađuje korisnik. To znači da se izvorni kod može mijenjati bez potrebe da korisnik čeka da službeni programer nadogradi programiranje. Većina programa otvorenog koda također je nadograđena od strane službenog programera.
Izvorni portovi se razlikuju od druge dvije izvorne nadogradnje jer obično rezultiraju vrlo malim promjenama u programu, a ova se nadogradnja obično odnosi na stare igre ili programe. Moderna računala mogu imati određene zahtjeve koje stare igre ili programi ne mogu zadovoljiti, ali ako se napravi izvorni port, igra se nadogradi kako bi ispunila zahtjeve. Na primjer, ako igra treba bolju podršku za renderiranje, tada programer samo dodaje ovu podršku i igra se može prenijeti na moderna računala.