V nekterych pripadech jsou reakce oficialniho vyvojarskeho tymu velmi jemne reseno "nedostatecne vcasne".
Nekdy jsou to i chyby bezpecnostni, casteji ale funkcni, tykajic se funkce neceho, co neni dostatecne v centru zajmu. Nekde jsou to chyby v ovladani konkretniho hardwaru, nekdy chyby, ktere jsou zpusobile zkratit realnou zivodnost hardwaru. Jeste tragictejsi je situace u "feature request" - pokud neco potrebujete a netrefite se nahodou do noty zadnemu z vyvojaru, tak to do systemu proste nedostanete. To vsechno vede k myslence vlastnich patchu jak v zdrojovem stromu samotneho systemu tak ve stromu portu. E) Vlastni patche Cilem je vytvorit takovy system, ktery nebude branit udrzbe zdrojovych stromu beznym zpusobem, a tim se mysli nejen pouziti 'svn' ale i to aby se update provadel stejnym prikazem jako "normalne". Resenim je umistit do /usr/src a /usr/ports soubor BSDMake Ten ma pri spousteni 'make' prednost pred Makefile a tak ho lze pouzit jako "hook", ktery nam umozni vkladat operace podle potreby. Moje jsou tady: > http://www.freebsd.cz/~dan/usr::src::BSDmakefile > http://www.freebsd.cz/~dan/usr::ports::BSDmakefile Oba potrebuji seznam patchu, ktere maji aplikovat. Ty ja mam v /etc/make.conf a vypada to takto: > LOCAL_SRC_PATCHES =/usr/src/patch-OPENSSH-AUTH /usr/src/patch-ATAPICD > /usr/src/patch-UHID > LOCAL_SRC_PATCHES+=/usr/src/patch-LIBALIAS+NATD /usr/src/patch-ETC-PROFILE > LOCAL_SRC_PATCHES+=/usr/src/patch-INSTALL /usr/src/patch-confGENERIC > LOCAL_SRC_PATCHES+=/usr/src/patch-NAMED /usr/src/patch-EAPOL_TEST > LOCAL_SRC_PATCHES+=/usr/src/patch-acpi-video /usr/src/patch-acpidump-TCPA > LOCAL_SRC_PATCHES+=/usr/src/patch-MERGEMASTER /usr/src/patch-module-ixgbe > /usr/src/patch-re > LOCAL_SRC_PATCHES+=/usr/src/patch-sysinstall /usr/src/patch-du > /usr/src/patch-CRYPT_BLF > LOCAL_SRC_PATCHES+=/usr/src/patch-hddsecurity /usr/src/patch-usb-QUIRKS > LOCAL_SRC_PATCHES+=/usr/src/patch-fs::nfsserver::nfs_nfsdserv.c > /usr/src/patch-NOSVN > LOCAL_SRC_PATCHES+=/usr/src/patch-ETC-NTP.CONF > > LOCAL_PORTS_PATCHES =/usr/ports/patch-OPENSSL /usr/ports/patch-libreoffice Jednotlive patche najdete take na http://www.freebsd.cz/~dan/ ale co ktery resi uz sem psat nebudu. V pripade zajmu tomu venuju samostatny mail. F) Vlastni patche portu To je neco jineho nez patche stromu portu popsane v bodu (E). Zde nemluvime o zmenach souboru patricich do stromu portu, ale o pridani vlastniho patche k nejakemu portu. To je nastesti jednoduche. Kazdy port ma FreeBSD-specific patche v podadresari files/ Takze pokud chcete pridat nejaky svuj, proste ho vlozite tam. Z praktickych duvodu doporucuju dodrzovat nejakou vhodnou konvenci pri pojmenovavani tech souboru tak, abyste je dokazali "oslovit" najednou - treba kdyz je budete chtit nekam okopirovat. Vsechny me patche ve stromu portu maji nazev zacinajici patch-DAN- nebo patch-~DAN- (ta druha proto, ze nekdy si potrebuju byt jisty, ze se muj patch aplikuje az jako posledni a ony se aplikuji abecedne podle nazvu souboru). G) Vlastni porty Nekdy proste neni ve stromu portu ten port, ktery potrebujete. Treba vas vlastni program. Pro tyto pripady existuje /usr/ports/local ale jeho pouziti neni tak trivialni jak by mohlo byt. Do /etc/make.conf pridejte > VALID_CATEGORIES=local > .if ${.CURDIR} == /usr/ports > SUBDIR+=local > .endif Do /usr/ports/local pridejte soubor Makefile vypadajici nejak takhle: > COMMENT = Local ports > > SUBDIR += rad_eap_test > SUBDIR += nagvis > SUBDIR += sleuth > SUBDIR += waitfornetwork > SUBDIR += pam_af > SUBDIR += p5-Config-File > SUBDIR += check_mssql > > .include <bsd.port.subdir.mk> Pricemz jednotlive 'SUBDIR' odpovidaji podadresarum jednotlivych vasich portu (v prikladu tedy 7 vlastnich portu). Do podadresaru uz umistujte vlastni porty zpusobem obdobnym jako je tomu u portu standardnich. V jejich Makefile uvedte > CATEGORIES= local Pokud mate vlastni porty tak pri aktualizaci stromu portu urcite zapomente na 'make fetchindex'. Rozhodne musite pouzit 'make index'. -------------------------------------------------------------------- Pokud je ten-ktery bod nejasny, nebo nejaky zcela chybi, ptejte se. Tak - to mame vlastni patche existujicich souvory v /usr/src a /usr/ports, dale vlastni patche pro jednotlive porty a nakonec - vlastni porty. Neni toho uz docela dost ? A to je porad jen dost hruba osnova. To jsem nejake skoro ctyri hodiny sepisoval know-how jehoz ziskani trvalo desetileti. Ze ja se dal na to vzdelavani misto toho, abych to za tezky penize prodaval ... Tak pokud se nekdo tim smerem vydate a bude vam to k uzitku, tak mi pak aspon dejte vedet, ze vam to k necemu bylo. Do popisu k cemu je ten-ktery patch v systemu se mi ted uz fakt nechce. Pritom ale treba takovy patch-re prodluzuje zivotnost interni EEPROM sitovych karet if_re a ty jsou zrovna v kde-cem. Tak treba po nejaky ty pauze. Vetsi sance bude pokud alespon nekdo rekne, ze by mu to k necemu bylo. At zbytecne netravim spoustu casu sepisovanim neceho, co nikdo neupotrebi. Dan -- FreeBSD mailing list ([email protected]) http://www.freebsd.cz/listserv/listinfo/users-l
