Summary: | hsh --ini --verbose does not identify post script | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Vitaly Chikunov <vt> |
Component: | hasher | Assignee: | Dmitry V. Levin <ldv> |
Status: | ASSIGNED --- | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | arseny, at, glebfm, ldv, placeholder |
Version: | unstable | ||
Hardware: | x86 | ||
OS: | Linux |
Description
Vitaly Chikunov
2021-11-01 22:11:37 MSK
В качестве решения, которое будет работать со всеми версиями hasher, могу предложить всегда добавлять set -x в ~/.hasher/install/post А в остальном, как обычно, патчи приветствуются. Я, видимо, плохо описал проблему. OK, а в чём тогда проблема? Хочется не вставлять отладку в ~/.hasher/install/post, но при этом получать отладочные сообщения о том, что /.host/postin запустился? Я бы сам вставил отладку в ~/.hasher/install/post если бы знал что проблема в нем, но как раз это и неизвестно. "Не понятно где возникает ошибка" - не "не понятно где в post", а "не понятно где в hsh --ini". Добавить фразу Executing /.host/postin, или добавить -x в скрипт, который запускает /.host/postin? Было бы желательно хотя бы добавить фразу Executing ~/.hasher/install/post или аналогичное что бы показало, что дело не в каком-то из пакетов или filetrigger, а в моём post. Я думаю -x это не покажет. Попробуй такой патч: --- a/hasher/hsh-sh-functions.in +++ b/hasher/hsh-sh-functions.in @@ -427,6 +427,7 @@ create_entry_header() TMPDIR="\$HOME/tmp" export TMPDIR cd /.in +${verbose:+set -x} __EOF__ chmod 755 "$entry" } @@ -443,6 +444,7 @@ if [ -z "\$FAKEROOTKEY" -a "\$USER" = root -a -x /usr/bin/fakeroot ]; then fi fi cd /.in +${verbose:+set -x} __EOF__ chmod 755 "$entry" } Это не помогает. Я прошу сделать вывод сообщения, что сейчас запускается ~/.hasher/install/post (In reply to Vitaly Chikunov from comment #8) > Это не помогает. Я прошу сделать вывод сообщения, что сейчас запускается > ~/.hasher/install/post Реализовать именно это предложение довольно сложно. Сообщение должно будет порождаться из /.host/entry; либшелльные лог-сообщения опционально идут ещё и в сислог, крайне неудобно это делать из /.host/entry. Можно в entry засунуть только явный printf >&2, конечно, но это первый прецедент такого псевдо-verbose сообщения. В общем, лично мне не нравится. Теперь конструктивные предложения. В версии hasher 1.6.0-alt1 postin запускается прямо после следующих verbose-сообщений: * 'hsh-install: calculated mount points: '"$required_mountpoints" * 'hsh-initroot: RPM database updated.' (если chroot cache отключен или протух) Зачем я это упоминаю? Если hsh --initroot-only не добирается до этого места, значит, postin не виноват. В версии hasher 1.6.0-alt1 postin запускается прямо перед следующими verbose-сообщениями: * 'hsh-install: Packages installation complete.' * 'hsh-initroot: First time initialization complete.' (если chroot cache отключен или протух) Зачем я это упоминаю? Может, вместо сообщения о postin стоит ввести в этих программах сообщения о начале "packages installation" и "first time initialization". Пользователю надо узнать что сейчас выполняется ~/.hasher/install/post и следующие ошибки - из него. По всем эти надписям это не понятно, так что они не нужны. (In reply to Vitaly Chikunov from comment #8) > Это не помогает. Я прошу сделать вывод сообщения, что сейчас запускается > ~/.hasher/install/post Попробуй такой патч: diff --git a/hasher/hsh-install b/hasher/hsh-install index caa8d7d..2101b79 100755 --- a/hasher/hsh-install +++ b/hasher/hsh-install @@ -161,6 +161,7 @@ if type adjust_kernel_headers >/dev/null 2>&1; then adjust_kernel_headers --first fi if [ -x /.host/postin ]; then + ${verbose:+echo >&2 \$0: executing /.host/postin} /.host/postin fi __EOF__ diff --git a/hasher/hsh-sh-cache-chroot-functions b/hasher/hsh-sh-cache-chroot-functions index 099459b..c5aa1c6 100644 --- a/hasher/hsh-sh-cache-chroot-functions +++ b/hasher/hsh-sh-cache-chroot-functions @@ -372,6 +372,7 @@ if type adjust_kernel_headers >/dev/null 2>&1; then adjust_kernel_headers fi if [ -x /.host/postin ]; then + ${verbose:+echo >&2 \$0: executing /.host/postin} /.host/postin fi groupadd -g $gid0 caller ||: |