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