Bug 24669 - проблемы с обработкой IMAGE_PACKAGES_REGEXP
Summary: проблемы с обработкой IMAGE_PACKAGES_REGEXP
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: mkimage (show other bugs)
Version: unstable
Hardware: all Linux
: P3 minor
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-30 17:45 MSK by Michael Shigorin
Modified: 2010-12-08 22:04 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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 :)

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