Petr Macek napsal/wrote, On 08/28/09 13:45:
A to vubec nemluvim o 'pkgdb -F', ktere nalezenou "chybejici zavislost" pausalne resi smazanim zaznamu o zavislosti, protoze ji shleda "irrelevant".

Nikdy jsem poradne pkgdb -F nepochopil

Tohle je ten duvod, proc se mi vyplati tady v konferenci byt. Sam bych se nedokopal, abych se podival jak to funguje, protoze nejak ziju s tim, jak to (ne)funguje. Ale kdyz se nekdo zepta, tak ja se teda podivam a zjistim si to. A kdyz uz to vim, tak reknu ...

Takze - jak to dela - kdyz je u baliku uvedena zavislost, ktera neni nainstalovana, tak:

pomoci ...
make [prislusne optiony] package-depends-list
... zjisti co by v seznamu zavislosti byt melo.

A kdyz to co tam je "navic" (oproti tomu, co je v systemu nainstalovano) v tomto seznamu chybi, tak je to "zbytecne" a smaze se to.

To zni logicky, pokud toto pravidlo ma spravne zvladnutou vyjimku. Tou vyjimkou jsou ALT_PKGDEPS z pkgtools.conf, ktere jsou tam prave proto aby clovek mohl rict "vsude, kde je zavislost na databases/mysql50_client necht' se ma zato, ze port zavisi na mysql51_client neb jsem upgradoval z MySQL 5.0 na MySQL 5.1 coz formalne nejsou dve verze tehoz portu, ale dva samostatne porty tudiz to automaticky porovnavac cerzi samostatne nezvladne),

Jenze prave okolo ALT_PKGDEP je ta logina v pkgdb nejaka velmi podezrela. Tak zaprve, zatimco v ALT_PKGDEP muze byt jak mazev portu tak origin (oboji pripaden navic muze obsahovat *) tak kod v tomto miste pocita jen s variantou "nasev portu". Takze pokud je v pkgtools.conf alternativni zavislost zapsana originama pak neni odhalena (a tudiz je zavislost na "starem" portu nasledne smazana jako irelevantni).

To je jeden problem.

Druhy, a v podstate samostatny, problm je - i kdyz by byla ALT zavislost odhalena, vsechno co v takovem pripade pkgdb udela je - prestane se balickem zabyvat (tj. necha tam puvodni, vadnou, zavislost).


Takze - k tomu, aby pkgdb -F fungoval tak, jak podle m je pospano, ze fungovat ma, je treba tri veci -

1. u cross-port upgradu poctive vypknovat ALT_PKGDEPS v konfiguraci.
2. opravit to, ze alternativa se hleda pouze podle nazvu a ignoruje se origin 3. opravit to, ze pri nalezeni alternativy se prace na oprave balicku okamzite ukonci

[1] je vec spravce systemu, [2] a [3] jsou podle me chyby v kodu pkgdb. Pomerne snadno opravitelne, protoze [2] je otazka jednoho radku a [3] dvou, z nichz ten prvni je ale navic tentyz jako v pripade [2] - takze celkem - dva radky.

No tak ja si to teda u sebe opravim a poslu PR - treba je tam orpavdu chyba, i kdyz nelze zcela vyloucit, ze jsem jen nepochopil, co ma -F presne delat.


Ale at to udelam jakkoli, vzdycky mi to nakonec funguje.
Takze bud to delam dobre nebo ten program vi, co delat :-)

No, ono je to spis tak, ze bud' pouzivas postup, pri kterem pkgdb vlastne vubec neni potreba, pripadne, delas jen takove typu upgrade, pri kterych se vyse popsany problem neprojevi.

A nebo delas, projevi se, ale nastesti vadne packages nepouzivas zpusobem, ktery by dovolil vade projevit se.

                                                Dan


--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem