makewhatis [man.spec]
Charles
kkrenski w gmail.com
Pon, 1 Sie 2005, 13:24:23 CEST
Witam.
Jak już chyba wszystkim wiadomo aktualny makewhatis nie działa.
Za taki stan rzeczy odpowiedzialny jest man-ro-usr.patch. Zmiany, które
wprowadza są idiotyczne i nie mają prawa działać. W poprawionym przeze mnie
makewhatis (całość dostępna w: http://nexar.no-ip.org/~max/makewhatis.html)
wprowadziłem kilka istotnych zmian.
Dodałem opcję -r, wymuszającą tworzenie tylko jednego whatis
w /var/cache/man (co było zamierzeniem ww. patcha) czyli użytecznte w
przypadku, kiedy /usr jest podmontowany jako tylko do odczytu.
Dlaczego dodatkowa opcja? Już wyjaśniam. Otóż jeśli tworzymy tylko jeden
zbiorczy whatis, nie mamy możliwości skorzystania z opcji -u (update), a
której mechanizm bazuje na tym, że istnieją pliki whatis w poszczególnych
katalogach mana.
Niezależnie od tego w kodzie sprawdzana jest możliwość zapisu do katalogów
mana i w przypadku niepowodzenia automatycznie włączany jest tryb -r:
for pages in man cat
do
eval path="\$$pages"path
for mandir in $path
do
if [ x$update = x ]; then
[ -w "$mandir/whatis" ] && :> "$mandir/whatis"
fi
# check write permission
[ ! -w "$mandir" ] && readonly=1
done
done
# if readonly then exclude update
if [ x$readonly != x ]; then
unset $update
unset $findarg
fi
A teraz moje uwagi/pytania:
- jeśli "polityka PLD" tego wymaga (czyt. tylko /var/cache/man/whatis) to:
a) dodać do skryptów cron.{daily,weekly} opcję -r
b) całkowicie zrezygnować z opcji -r (brak update)
c) symlinki poszczególnych whatis do /var/cache/man/[?] (jest update, ale
bardziej zagmatwane już w samym man.spec)
- jaki ma sens wykonywać makewhatis -u w cron.weekly, jeśli za każdyn razem
w daily jest tworzenie nowej bazy whatis? IMO powinno być odwrotnie :)
Proszę o pytania, uwagi i opinie.
--
Pozdrawiam,
Karol Krenski
Więcej informacji o liście dyskusyjnej pld-devel-pl