1. Příprava WiBSD image

Pro přípravu WiBSD image je potřeba balík skriptů a ostatních souborů, které nejsou veřejné.

1.1. Plugin systém

Balík obsahuje adresář plugins ve kterém jsou další adresáře, které postupně projdeme:

_DISTROS: zde jsou pluginy pro celou distribuci, které kopirují pouze nezbytné soubory ze základní distribuce FreeBSD to distribuce WiBSD.

_IMAGES: pluginy, které mohou například vytvářet filesystém pro flash kartu nebo pro cd

_LIBS: kopirují knihovny z FreeBSD do WiBSD

_PORTS: kompilují porty a kopírují nezbytné soubory do WiBSD

ostatní adresáře: obecné pluginy, které upravují různé soubory distribuce WiBSD a přidávají tím další funkcionalitu.

V každém pluginu může být několik adresářů, které určují další práci s pluginem. Protože se může funkcionalita lišit pro různé verze WiBSD, je možnost vytvořit podadresáře, jejichž jména určují, pro kterou verzi se jejich obsah použije.

  • all: pro všechny verze

  • RELENG_4: pro verze FreeBSD 4.x

  • RELENG_4_8: pro verzi 4.8

pokud používáte verzi 4.8, aplikují se adresáře all, RELENG_4, RELENG_4_8 v tomto pořadí.

Každý plugin může provádět různé akce, podle toho jestli má nějaký obsah v následujících podadresářích.

Adresáře kontrolované před kompilací systému

  • prespecial: skripty, které se spustí před tím, než začné kompilace

  • patch: předkompilací "opatchuje" zdrojové soubory FreeBSD

Adresáře kontrolované po zkompilování systému

  • distro: zkopíruje soubory z FreeBSD do WiBSD

  • add: přidá soubrory z podaresářů do stejných adresářů ve WiBSD, přepíše existující

  • conadd: jako add ale zachová exitující

  • append: přidá obsah souborů v podadresářích na konec stejných souboru ve WiBSD

  • postpatch: umožňuje provádět patchování výsledných souborů

  • postspecial: skripty, které se provedou po kompilaci

1.2. Příprava na kompilaci

V kořenu systému balíků jsou dva důležité soubory

  • Makefile: obsahuje cíle, jako jsou

    • buildjail: provádí buildworld, buildkernel

    • installjail: installworld, installkernel, distribution (vytvoří soubory v /etc), copyports (zkopíruje porty to chrootu)

    • jail: buildjail, installjail

    • fresh-jail: cvsup (z cvs vybere zdrojové soubory systému), cvsup-ports (z cvs vybere soubory portů), preprocess (provede předkompilační akce z pluginů), jail

    • wibsd: sestavuje distribuci wibsd podle pluginu

    • image: vytvoří image na flash kartu nebo CD

    • upgrade: vytvoří soubor pro vzdálený upgrade

    • fresh-image: vytvoří všecho

  • Makefile.conf: konfigurační soubor pro výše uvedený Makefile, definují se v něm sekce, kde každá může používat jiné pluginy a nastavení kompilačních adresářů.

    Názvy pluginů, které chcete použít, se vloží do proměnných

    • DISTROPLUGINS: jména pluginů z _DISTRO adresáře

    • PORTPLUGINS: jména pluginů z _PORTS

    • LIBPLUGINS: z _LIB

    • IMAGEPLUGINS: z _IMAGE

    • PLUGINS: obecné pluginy

    • CLEANUPPLUGINS: obecné pluginy, které provádějí závěrečné čistění souborů v distribuci (jako strip na binárky apod.)b

1.3. Kompilace

Samotná kompilace se provádí v základním adresáři, kde jsou soubory Makefile a Makefile.conf a to zadáním příkazu make -DJMÉNO_SEKCE cíl, například následovně

root@vergilius# make -DSMART-ROUTER wibsd upgrade

Nad dříve zkompilovaným systémem provede sestavení WiBSD a vytvoření souboru pro upgrade.

1.4. Detailnější dokumentace

Pro detailnější popis systému portů a celého průběhu kompilace je vhodné nahlédnout do souboru doc/wibsd-doc.txt a hlavně si prohlédnout jednotlivé adresáře balíku, hlavně pluginů.