Bug 24669

Summary: проблемы с обработкой IMAGE_PACKAGES_REGEXP
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: mkimageAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: minor    
Priority: P3 CC: glebfm, legion, mike
Version: unstable   
Hardware: all   
OS: Linux   

Description Michael Shigorin 2010-11-30 17:45:11 MSK
При использовании

  CHROOT_PACKAGES_REGEXP = ^kernel-image-(std-def|el-smp)$$ \
                           ^kernel-modules-(drm|drbd83)-(std-def|el-smp)$$

получаем ожидаемый результат -- включение только существующих из потенциально перечисленных двумя регулярными выражениеми пакетов; при использовании

  IMAGE_PACKAGES_REGEXP = ^kernel-image-(std-def|el-smp)$$ \
                          ^kernel-modules-(drm|drbd83)-(std-def|el-smp)$$

получаем взрыв в targets.mk (проверено echo boom'ом перед) вида:

/bin/sh: command substitution: line 7: syntax error near unexpected token `('
/bin/sh: command substitution: line 7: `/usr/share/mkimage/tools/mki-expand-pkgs regexp ^kernel-image-(std-def|el-smp)$ ^kernel-modules-(drm|drbd83)-(std-def|el-smp)$'
make[1]: *** [copy-packages] Error 1
make[1]: Leaving directory `/tmp/.private/mike/example3.1/base'
make: *** [base] Error 2

Проверить можно на example3, добавив эти две строчки соответственно в Makefile и base/Makefile.

Насколько понимаю по `fgrep -rl PACKAGES_REGEXP [^d]*`, пути обработки этих переменных, в т.ч. по части "пути следования" make<->sh, довольно сильно отличаются.  Обдумал возможности делать квотинг, но выглядит довольно плохо (неконсистентно и может "вдруг" ломаться, если изменяется количество expansion'ов по дороге).

Хотелось бы, чтоб по возможности эти переменные обрабатывались консистентным образом.

PS: также довольно стрёмное место -- в tools/mki-prepare, где $CHROOT_PACKAGES и $CHROOT_PACKAGES_REGEXP не квотятся (ради сохранения множественности слов, как понимаю).
Comment 2 Michael Shigorin 2010-12-08 22:04:45 MSK
mkimage g32a297d, example3 с упомянутыми изменениями => 85828 extents written :)

Спасибо!  Думал в ту же сторону, но застрял довольно далеко от прочитанного коммита.