Bug 11488

Summary: Не выполнять cron-скрипты в fake'овом окружении
Product: Sisyphus Reporter: Denis Smirnov <mithraen>
Component: manAssignee: Slava Semushin <php-coder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: ldv, voins
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Proposal patch
none
Новая версия патча none

Description Denis Smirnov 2007-04-12 18:28:44 MSD
При установке в hasher ставится неправильно и портит права.
Нужно не запускать скрипт в /etc/cron.daily если установлены переменные
окружения  FAKED_MODE/FAKEROOTKEY.

Проверку предлагаю добавить в сам скрипт.
Comment 1 Dmitry V. Levin 2007-04-12 18:30:56 MSD
Не может этого быть:
$ rpmquery -p --scripts x86_64/RPMS/man-1.5m2-alt4.x86_64.rpm 
preinstall scriptlet (through /bin/sh):
/usr/sbin/useradd -r -g man -d /var/cache/man -s /dev/null -n cacheman
>/dev/null 2>&1 ||:
Comment 2 Dmitry V. Levin 2007-04-15 03:23:32 MSD
Я полагаю, что речь идёт о каком-то другом пакете.
Comment 3 Denis Smirnov 2007-04-18 23:11:29 MSD
rpm -qf /etc/cron.weekly/makewhatis
man-1.5m2-alt4

из man.spec:
%triggerpostun -- %name < 1.5m2-alt2
echo -n 'Rebuilding whatis database... '
/etc/cron.weekly/makewhatis
echo done.

В этом скрипте содержится вызов su, со всеми вытекающими отсюда последствиями:
su -l cacheman -s /bin/sh -c /usr/sbin/makewhatis

я полагаю что fakeroot'у от этого плохеет.

Если я не прав, на кого перевешивать? ;)
Comment 4 Dmitry V. Levin 2007-04-19 12:02:21 MSD
Где ты взял man < 1.5m2-alt2?
Comment 5 Denis Smirnov 2007-04-19 23:08:09 MSD
Гм. Извиняюсь, действительно дело не в этом триггере.
Дело в том что во всех man-pages:
%post -p /etc/cron.daily/makewhatis

и, наверное, проще пофиксить это в самом этом скрипте, чем городить проверки во
всех man-pages.*
Comment 6 Dmitry V. Levin 2007-04-21 02:31:25 MSD
Ладно, хуже от этого не будет.
Comment 7 Slava Semushin 2008-01-16 14:54:57 MSK
Так. Давайте я попробую в этом разобраться, чтобы исправить баг.

Во-первых, мне непонятно как и почему портятся права? Что это значит?

Во-вторых, если я правильно понял, то править нужно не только
/etc/cron.daily/makewhatis, но и /etc/cron.weekly/makewhatis. Я прав?

Также я посмотрел мельком доку по fakechroot
(http://fakechroot.alioth.debian.org/), в её мане вижу следующее: "FAKECHROOT
The value is true for fake chroot environment." Если у нас та же версия что и у
апстрима, то имеет смысл использовать именно эту переменную для проверки в чруте
мы или нет (вместо FAKED_MODE/FAKEROOTKEY.). Да?

В итоге. Я сейчас приложу предлагаемый мной патч. Мне хотелось бы услышать от
вас ответы на свои вопросы и подтверждение/замечания по предлагаемому патчу.

:-)
Comment 8 Slava Semushin 2008-01-16 15:00:33 MSK
Created attachment 2380 [details]
Proposal patch

Что-то не очень понял как проверить $FAKECHROOT true она или нет. То ли там
строка с текстом то ли просто 1 или 0.

2ldv@: Прошу от'review'ить мой патч и высказаться.
Comment 9 Slava Semushin 2008-01-17 08:49:21 MSK
Короче, патч мой явно кривой. Может быть достаточно будет только проверки
существования пемеренной? [ -z "$FAKECHROOT" ] ? Если нет, то как лучше
проверить её значение?
Comment 10 Slava Semushin 2008-01-29 14:40:19 MSK
*ping*
Comment 11 Dmitry V. Levin 2008-01-29 18:26:34 MSK
(In reply to comment #8)
> Created an attachment (id=2380) [edit]
> Proposal patch
> 
> Что-то не очень понял как проверить $FAKECHROOT true она или нет. То ли там
> строка с текстом то ли просто 1 или 0.

Если проверять, то $FAKEROOTKEY
Comment 12 Slava Semushin 2008-02-06 14:52:47 MSK
Created attachment 2421 [details]
Новая версия патча

2ldv@: такой патч подойдёт?
Comment 13 Dmitry V. Levin 2008-02-06 15:05:52 MSK
(In reply to comment #12)
> Created an attachment (id=2421) [edit]
> Новая версия патча
> 
> 2ldv@: такой патч подойдёт?

Проверки можно склеить, но и так будет работать.
Comment 14 Slava Semushin 2008-02-13 09:35:26 MSK
(In reply to comment #13)
> > 2ldv@: такой патч подойдёт?
> Проверки можно склеить, но и так будет работать.

Спасибо.

// что-то мне комментарии по баге не приходили, оказывается меня почему-то нет в
СС к баге..
Comment 15 Slava Semushin 2008-02-27 10:30:11 MSK
В Сизиф ушел man-1.6f-alt1, в котором этот баг должен быть исправлен.