Miroslav Prýmek napsal/wrote, On 11/25/10 11:14:
Takze treba jenom do oficialniho stromu dohrajes do files dalsi patch-* soubor?
Nebojis se, ze na to casem
zapomenes a pak se budes divit, proc ze ten port nejde prelozit? :)
No, nastesti vetsinou to co selze je uz samotna aplikace patchu. Ale
ano, muze dojit i k tomu, ze patche se povedou a selze preklad a nebo se
dokonce podari i preklad a nefunguje to dobre.
C'est la vie ...
Horsi je, kdyz zmena, ktere chci dosahnout, nespociva v pridani dasiho
patche do ./files ale je napriklad treba zmenit Makefile ...
Rikam si, ze kdyz uz vlastni zmeny ve stromu portu, chtelo by to nejaky
system... Ale jeste jsem teda nepremyslel,
jak by treba v mem pripade mel vypadat :)
"Pridane" patche jsou ve ./files - abych rozeznal vlastni od cizich a
aby nedochazelo k ekolizim ve jmenech, tak vsechny moje pridane soubory
maji jmeno patch-DAN-* respektive patch-~DAN* (to druhe proto, ze nekdy
patchuji uz patchovane misto a tudiz potrebuju aby s emuj patch uplatnil
az nakonec ; patche se aplikuji v abecednim poradi a '~' je posledni
znak ...)
Modifikace (nejcasteji ./Makefile) - to je podstatne slozitejsi pisnicka.
Vyuzivam toho, ze 'make' spusteny bez parametru hleda drive soubor s
nazvem BSDmakefile, takze mam v /usr/src a /usr/ports ten - kdyz tedy
spustim "make update" tak se ve skutecnosti spusti "muj", ten udela
standardni update a po nem aplikuje updaty (jake - to pisu do
/etc/make.conf).
Je to ale strasne komplikovane, protoze bych z make potreboval zavolat
jine make, ale predat mu vsechny optiony a promenne - a jestli to jde
jednoduse, tak ja to neumim.
A s tim svym resenim, ktere jsme prave popsal nejsem spokojeny a budu to
muset nejak prerozmyslet a predelat.
Nejspis tak, ze tu "skrytou" funkcionalitu", ktera se provadi
automaticky i pri "beznem" spusteni - tedy "make update" prestanu
skryvat a to udelam "zjevne" - a misto "make update" se bude volat
nejaky normalni script.
Navic jsem nespokojeny s tim, ze jak mam 4 master stroje (6.4-R, 7.3-R,
8.1-R/i386, 8.1-R/amd64) tak nemam zadny mechanismus na spolecnou udrzbu
techto patchu. Jak portove patche tak OS patche tam musim mezi temito
stroji prenaset rucne a to ej nachylne na chyby (o pracnosti nemluve).
Jen na okraj bych explicitne zminil zjevnou vec - system "master
builderu" vyzaduje dostatecny stupen unifikace. Napriklad nepripada v
uvahu, aby na nekterem stroji byl PHP 5.2 a na jinem PHP 5.3, ledaze ty
porty nejsou ve vzajemnem konfliktu (coz v tomto pripade jsou).
Zakaznik ma tri moznosti - bud' aktualizace na posledni verze chce u
vseho, nebo je nechce u niceho, nebo pozaduje specialni sluzbu se
specialnimi parametry (a pochopitelne i cenou) ...
Musim ale dodat, ze ja v podstate nemam zakazniky v tom beznem slova
smyslu, v jakem to slovo pouzivate vy.
Dan
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l