Bug 26470 - [PATCH] gb-remote-check-install: add --mountpoint=/proc to hsh-* calls.
Summary: [PATCH] gb-remote-check-install: add --mountpoint=/proc to hsh-* calls.
Status: CLOSED FIXED
Alias: None
Product: Infrastructure
Classification: Infrastructure
Component: girar (show other bugs)
Version: unspecified
Hardware: all Linux
: P3 normal
Assignee: Dmitry V. Levin
QA Contact: Mikhail Gusarov
URL: http://git.altlinux.org/people/viy/pa...
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-18 22:22 MSK by viy
Modified: 2011-10-20 18:50 MSK (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description viy 2011-10-18 22:22:34 MSK
New eclipse reconfiguration filetrigger is written in java
    which in turn requires /proc to be present. check-install test
    will always fail for them without --mountpoint=/proc.

proposed patch:
http://git.altlinux.org/people/viy/packages/?p=girar-builder.git;a=commit;h=129277b04f8866dd23a5cef4f27f121b63379159
Comment 1 Dmitry V. Levin 2011-10-19 00:23:06 MSK
$ git grep known_mountpoints=
remote/gb-remote-plant:known_mountpoints=/proc,/dev/pts
Comment 2 viy 2011-10-19 01:28:39 MSK
Напомню, этого недостаточно. Это не работает :(
Дмитрий, я понимаю, что это ваш код, но факты - упрямая вещь:
у меня уже год прописан
$ cat ~/.hasher/config
workdir=/tmp/hasher
packager="`rpm --eval %packager`"
known_mountpoints=/proc

но если сделать 
hsh --initroot-only
hsh-install eclipse-jdt
hsh-run ls /proc
$ hsh-run ls /proc
filesystems

Proc пустой :(
$ rpm -q hasher
hasher-1.3.21-alt1
Comment 3 Dmitry V. Levin 2011-10-19 01:44:18 MSK
(In reply to comment #2)
> Напомню, этого недостаточно. Это не работает :(
> Дмитрий, я понимаю, что это ваш код, но факты - упрямая вещь:
> у меня уже год прописан
> $ cat ~/.hasher/config
> workdir=/tmp/hasher
> packager="`rpm --eval %packager`"
> known_mountpoints=/proc
> 
> но если сделать 
> hsh --initroot-only
> hsh-install eclipse-jdt
> hsh-run ls /proc

А зачем нужен /proc для hsh-run?
В girar-builder есть только одно место, в котором hsh-run запускает команду, поведение которой может зависеть от /proc:

hsh-run --rooter -- \
rpm -ev -- ${what:?} </dev/null >out 2>&1 ||

Если в этом месте действительно нужен смонтированный /proc, то мне хотелось бы включать его только в тех случаях, когда до этого /proc был смонтирован во время hsh-install.
Comment 4 viy 2011-10-19 02:17:34 MSK
(В ответ на комментарий №3)

> (In reply to comment #2)
> А зачем нужен /proc для hsh-run?
> В girar-builder есть только одно место, в котором hsh-run запускает команду,
> поведение которой может зависеть от /proc:

в этом месте во время rpm -e eclipse-jdt будет вызван файлтриггер на
переконфигурирование eclipse :(
файлтриггеру для работы нужна java, а ей /proc.

> В girar-builder есть только одно место

В остальных местах, которые я пометил, тоже будут вызываться %postun и
файлтриггер.
например, eclipsr-jdt по зависимостям вытянет eclipse-platform,
которому желательно пройти корректное конфигурирование.
поэтому в hsh-install тоже нужно --mountpoint=/proc

А в hsh -init  нужно --mountpoint=/proc указать, поскольку 
там вроде был какой-то глюк, что если эту опцию во время
-init не указать, то потом дальше везде --mountpoint=/proc 
работать не будет.
Comment 5 viy 2011-10-19 02:26:12 MSK
(В ответ на комментарий №4)
> А в hsh -init  нужно --mountpoint=/proc указать, поскольку 
> там вроде был какой-то глюк, что если эту опцию во время
> -init не указать, то потом дальше везде --mountpoint=/proc 
> работать не будет.

Проверил, в init --mountpoint=/proc можно не указывать, 
hsh-run --mountpoint=/proc ls /proc работает.

т.е. нужно только при установке пакетов и при удалении.
Comment 6 Dmitry V. Levin 2011-10-19 02:32:59 MSK
(In reply to comment #5)
> (В ответ на комментарий №4)
> > А в hsh -init  нужно --mountpoint=/proc указать, поскольку 
> > там вроде был какой-то глюк, что если эту опцию во время
> > -init не указать, то потом дальше везде --mountpoint=/proc 
> > работать не будет.
> 
> Проверил, в init --mountpoint=/proc можно не указывать, 
> hsh-run --mountpoint=/proc ls /proc работает.
> 
> т.е. нужно только при установке пакетов и при удалении.

Все hsh-команды, которые работают с пакетами, используют $known_mountpoints.
hsh-run/hsh-shell не используют $known_mountpoints, потому что у них --mountpoints имеет немного другой смысл.

Думаю приложить такой патч:
@@ -210,4 +210,5 @@
 # Remove the package.
+mountpoints="$(hsh-run -- rpmquery -aR | grep -E '^/(proc|dev/pts)$' | sort -u | tr '\n' ,)"
 what=$(perl -pe 's/=\d+:/-/ or s/=/-/' <new-packages)
-hsh-run --rooter -- \
+hsh-run --rooter --mountpoints="$mountpoints" -- \
 rpm -ev -- ${what:?} </dev/null >out 2>&1 ||
Comment 7 viy 2011-10-19 02:48:42 MSK
спасибо!
Comment 8 viy 2011-10-20 16:34:45 MSK
(В ответ на комментарий №6)
> Думаю приложить такой патч:
А что с этим патчем? он еще не приложен?
А то я не могу новый eclipse собрать :(
Comment 9 Dmitry V. Levin 2011-10-20 18:33:52 MSK
Патч приложен.
Comment 10 viy 2011-10-20 18:50:14 MSK
спасибо!