Bug 23824

Summary: add chown1, chown2 commands with -R support
Product: Sisyphus Reporter: viy <viy>
Component: hasher-privAssignee: Dmitry V. Levin <ldv>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P3 CC: erthad, ldv, placeholder
Version: unstable   
Hardware: all   
OS: Linux   

Description viy 2010-07-30 19:06:29 MSD
Для легковесной реализации gear-cronbuild в hasher chroot надо добавить
в hasher-priv дополнительные команды chown1, chown2, 
вызывающие в chroot-е chown user1 и chown user2 соответственно, 
а также понимающие опцию -R (для chown).

Метод, о котором мы говорили на конференции с git clone -s не работает,
так как он просто пишет ссылку за пределы chroot:
git clone -s ../repocop-report-prometeus.git re.git
cat .git/objects/info/alternates
/home/igor/src/repo/test/../repocop-report-prometeus.git/.git/objects
Comment 1 Dmitry V. Levin 2010-07-30 19:47:19 MSD
Обычный chown -R от рута -- это неустранимо небезопасная операция, давайте лучше обойдёмся без неё и попробуем использовать git init --shared.
Comment 2 viy 2010-07-30 20:38:28 MSD
ок, попробую.
Comment 3 viy 2010-07-30 20:51:42 MSD
заодно спрошу вопрос по hasher.
допустим, я запускаю hasher командой
hsh --initroot-only "$@"
есть ли простой способ узнать, где будет workdir?
чтобы не парсить "$@" и ~/.hasher/config ?
Comment 4 Dmitry V. Levin 2010-07-30 21:21:23 MSD
(In reply to comment #3)
> заодно спрошу вопрос по hasher.
> допустим, я запускаю hasher командой
> hsh --initroot-only "$@"
> есть ли простой способ узнать, где будет workdir?
> чтобы не парсить "$@" и ~/.hasher/config ?

Разве что распарсить verbose output.  А зачем это может быть нужно?
Comment 5 Dmitry V. Levin 2010-07-30 21:22:52 MSD
(In reply to comment #0)
> Метод, о котором мы говорили на конференции с git clone -s не работает,

Для достижения той цели, о которой шла речь, должно быть достаточно git init --shared с последующим git fetch.
Comment 6 viy 2010-07-30 21:49:06 MSD
(В ответ на комментарий №4)
> > есть ли простой способ узнать, где будет workdir?
> > чтобы не парсить "$@" и ~/.hasher/config ?
> Разве что распарсить verbose output.  А зачем это может быть нужно?
Скрипт хочет скопировать .git (или зайти чтобы сделать git init/git fetch) 
в $workdir/chroot/.in.
но $workdir не известно. Его нужно сначала как-то вычислить.

Если я к hasher хак прикручу, --print-env, например, нормально будет?