Hackování portů v OpenBSD aneb porušujeme pravidla

Porty jsou geniální systém pro kompilaci software, téměř nepřekonatelný. Co ale dělat, když potřebujeme funkci, kterou nenabízejí?
Opravdu ji nenabízejí? Možná, kdybychom trochu… OpenBSD stejně jako ostatní deriváty Berkeley Software Distribution používá porty. Je to vlastně stromový adresář plný odkazů, informací o závislostech a speciálních záplat, které umožňují stáhnout a zkompilovat bez problému software třetích stran. Ačkoli vývojáři OpenBSD doporučují použití balíčků, porty jsou plně funkční.
Trocha teorie nikoho nezabije
Než se pustíme do hackování, dovolím si popsat, jak to vše funguje standardně. Porty, jako systém se ve větvi „current“, neustále vyvíjí a mění. Několik týdnů před vydáním nové verze OpenBSD se vyhlásí stav „freeze“ a už se jen opravují chyby. Potom se z verze current vezme snapshot odladěný pro verzi základního systému nejbližšího vydání a ten se už nebude měnit. V důsledku toho získáváte extrémně stabilní vydání, ovšem se zastarávajícím software.
Oficiálně je pro určité vydání určité verze OpenBSD použitelný pouze a jedině systém portů pro dané vydání určený. Lidsky řečeno, k verzi 5.8 pasují jenom porty z instalačního adresáře 5.8. Všimněte si, že o architektuře nebyla řeč. Je to proto, že porty obsahují zdrojový kód, a zkompilují se pro danou architekturu až na stroji, kde sestavení spustíte.