* [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7
@ 2007-09-11 16:43 Alexey Tourbin
2007-09-11 16:55 ` Led
0 siblings, 1 reply; 11+ messages in thread
From: Alexey Tourbin @ 2007-09-11 16:43 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 923 bytes --]
> jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7
> find-requires: running scripts
> (files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> /usr/src/tmp/jakarta-commons-latka-buildroot/usr/share/jakarta-commons-latka-1.0/bin/latka.sh:
> line 19: syntax error near unexpected token `do\r'
> /usr/src/tmp/jakarta-commons-latka-buildroot/usr/share/jakarta-commons-latka-1.0/bin/latka.sh:
> line 19: `do\r'
> error: /bin/sh failed
> error: Failed to find Requires
> RPM build errors:
Это чистый #!/bin/sh скрипт, в котором досовские окончания строк \r\n.
Именно из-за этого шелл не может его распарсить.
Раньше зависимости в этом скрипте не искались, потому что он не
исполняемый. Теперь зависимости ищутся во всех шелл-скриптах -- как
исполняемых, так и не исполняемых (rationale: нельзя отличить скрипт
от библиотеки шелл-функций, которая подключается через "." или source).
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 2007-09-11 16:43 [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 Alexey Tourbin @ 2007-09-11 16:55 ` Led 2007-09-11 17:14 ` [devel] shell dependencies Alexey Tourbin 2007-09-11 17:19 ` [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 Alexey I. Froloff 0 siblings, 2 replies; 11+ messages in thread From: Led @ 2007-09-11 16:55 UTC (permalink / raw) To: devel В сообщении от Tuesday 11 September 2007 19:43:28 Alexey Tourbin написал(а): > > jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 > > find-requires: running scripts > > (files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl) > > /usr/src/tmp/jakarta-commons-latka-buildroot/usr/share/jakarta-commons-l > >atka-1.0/bin/latka.sh: line 19: syntax error near unexpected token `do\r' > > /usr/src/tmp/jakarta-commons-latka-buildroot/usr/share/jakarta-commons-l > >atka-1.0/bin/latka.sh: line 19: `do\r' > > error: /bin/sh failed > > error: Failed to find Requires > > RPM build errors: > > Это чистый #!/bin/sh скрипт, в котором досовские окончания строк \r\n. > Именно из-за этого шелл не может его распарсить. > > Раньше зависимости в этом скрипте не искались, потому что он не > исполняемый. Теперь зависимости ищутся во всех шелл-скриптах -- как > исполняемых, так и не исполняемых (rationale: нельзя отличить скрипт > от библиотеки шелл-функций, которая подключается через "." или source). Очень часто даже сейчас приходится указывать: Autoreq: yes, noshell потому как в "шеловских скриптах" часто, например, такое: if [ -x /usr/bin/foo1 ]; then /usr/bin/foo1 .... elif [ -x /usr/bin/foo2 ]; then /usr/bin/foo2 .... else .... fi По крайней мере, в моей практике "исключения" встречаются не реже, чем "правила", и автоматическому find.req.shell стараюсь "не доверять". -- Led ^ permalink raw reply [flat|nested] 11+ messages in thread
* [devel] shell dependencies 2007-09-11 16:55 ` Led @ 2007-09-11 17:14 ` Alexey Tourbin 2007-09-11 17:19 ` [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 Alexey I. Froloff 1 sibling, 0 replies; 11+ messages in thread From: Alexey Tourbin @ 2007-09-11 17:14 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 2070 bytes --] On Tue, Sep 11, 2007 at 07:55:40PM +0300, Led wrote: > > Это чистый #!/bin/sh скрипт, в котором досовские окончания строк \r\n. > > Именно из-за этого шелл не может его распарсить. > > > > Раньше зависимости в этом скрипте не искались, потому что он не > > исполняемый. Теперь зависимости ищутся во всех шелл-скриптах -- как > > исполняемых, так и не исполняемых (rationale: нельзя отличить скрипт > > от библиотеки шелл-функций, которая подключается через "." или source). > > Очень часто даже сейчас приходится указывать: > Autoreq: yes, noshell > потому как в "шеловских скриптах" часто, например, такое: > if [ -x /usr/bin/foo1 ]; then > /usr/bin/foo1 .... > elif [ -x /usr/bin/foo2 ]; then > /usr/bin/foo2 > .... > else > .... > fi Это всегда так было, и эта проблема по сути никак не связана с битом -x на скриптах. Нужен на порядок более мощный шелл-анализатор, чтобы можно было хоть как-то справляться с условными зависимостями. То есть нужно что-то вроде дерева опкодов, как в перле, или sexp-дерева, и стековый/рекурсивный проход по нему с фиксацией локального состояния. Тогда можно обнаруживать ситуации типа проверка существования файла <--------------\ загрузка файла [!]->--вверх по стеку есть проверка существования--' следующая команда [!] pop локальное состояние Ну долго объяснять. В принципе такое возможно, хотя это и очень сложно по сравнению с тем, что сейчас есть. В первом приближении можно об этом думать как о чем-то типа SAX. То есть логику можно внедрять на чем-то типа обработки xml дерева. > По крайней мере, в моей практике "исключения" встречаются не реже, > чем "правила", и автоматическому find.req.shell стараюсь "не доверять". Вместе с этим Вы лишаетесь проверки syntax check. Warkaround давно известен -- заворачивать условные пути в переменные. f1=/usr/bin/foo1 f2=/usr/bin/foo2 if [ -x "$f1" ]; then "$f1" elif [ -x "$f2" ]; then "$f2" else ... fi В общем, не доверять по умолчанию это перебор, но зависимости приходится проверять. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 2007-09-11 16:55 ` Led 2007-09-11 17:14 ` [devel] shell dependencies Alexey Tourbin @ 2007-09-11 17:19 ` Alexey I. Froloff 2007-09-11 17:27 ` Led 1 sibling, 1 reply; 11+ messages in thread From: Alexey I. Froloff @ 2007-09-11 17:19 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 545 bytes --] * Led <ledest@> [070911 21:05]: > потому как в "шеловских скриптах" часто, например, такое: FOO1=/usr/bin/foo1 FOO2=/usr/bin/foo2 > if [ -x /usr/bin/foo1 ]; then if [ -x "$FOO1" ]; then > /usr/bin/foo1 .... $FOO1 .... > elif [ -x /usr/bin/foo2 ]; then if [ -x "$FOO2" ]; then > /usr/bin/foo2 $FOO2 .... > .... > По крайней мере, в моей практике "исключения" встречаются не реже, > чем "правила", и автоматическому find.req.shell стараюсь "не доверять". Казалось бы, при чём здесь шлякварь? -- Regards, Sir Raorn. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 2007-09-11 17:19 ` [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 Alexey I. Froloff @ 2007-09-11 17:27 ` Led 2007-09-11 19:20 ` Alexey Tourbin 0 siblings, 1 reply; 11+ messages in thread From: Led @ 2007-09-11 17:27 UTC (permalink / raw) To: ALT Linux Team development discussions В сообщении от Tuesday 11 September 2007 20:19:34 Alexey I. Froloff написал(а): > * Led <ledest@> [070911 21:05]: > > потому как в "шеловских скриптах" часто, например, такое: > > FOO1=/usr/bin/foo1 > FOO2=/usr/bin/foo2 > > > if [ -x /usr/bin/foo1 ]; then > > if [ -x "$FOO1" ]; then > > > /usr/bin/foo1 .... > > $FOO1 .... > > > elif [ -x /usr/bin/foo2 ]; then > > if [ -x "$FOO2" ]; then > > > /usr/bin/foo2 > > $FOO2 .... > Это серьёзно перелопачивать shell-скрипты, которых может быть в паукете "не один" и "немаленький". В этом случае разговор о поиске exec ... в tcl/python скриптах с "#!/bin/sh" кажутся смешными - пофиксить в них шебанг на реальный действительно просто:) > > .... > > > > По крайней мере, в моей практике "исключения" встречаются не реже, > > чем "правила", и автоматическому find.req.shell стараюсь "не доверять". > > Казалось бы, при чём здесь шлякварь? Ни при чём. Когда я говорю "не доверять", то имею ввиду, что сначала делаю сборку с find.req.shell, анализирую, что действительно requires, добавляю это в явный requires в спек и ставлю 'Autoreq yes, noshell'. Как раз потому что меня абсолютно не устраивает и "шлякварь", и Fedora, пакеты которой зачастую тянут за собой "что не попадя":) -- Led ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 2007-09-11 17:27 ` Led @ 2007-09-11 19:20 ` Alexey Tourbin 2007-09-11 19:55 ` Led 2007-09-16 21:36 ` [devel] AutoReq: yes, shell Michael Shigorin 0 siblings, 2 replies; 11+ messages in thread From: Alexey Tourbin @ 2007-09-11 19:20 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 1644 bytes --] On Tue, Sep 11, 2007 at 08:27:50PM +0300, Led wrote: > Это серьёзно перелопачивать shell-скрипты, которых может быть в паукете "не > один" и "немаленький". В этом случае разговор о поиске > exec ... Увы, бывают действительно "кривоватые" скрипты, да и не совсем кривоватые, в которых поиск зависимостей дает слишком много результатов. Всё же стоит попытаться выяснить, много ли там перелопачивать или нет. > Ни при чём. Когда я говорю "не доверять", то имею ввиду, что сначала делаю > сборку с find.req.shell, анализирую, что действительно requires, добавляю это > в явный requires в спек и ставлю 'Autoreq yes, noshell'. Как раз потому что > меня абсолютно не устраивает и "шлякварь", и Fedora, пакеты которой зачастую > тянут за собой "что не попадя":) Лучше делать так: собрать один раз, и, если поиск шелл-зависимостей устраивает, ничего не трогать. После сборки новой версии, если старый пакет установлен, просто сравнить зависимости: compare_packages -i -a --requires /*/новая_версия.rpm или, если не установлен compare_packages -a --requires -- /*/старая_версия.rpm -- /*/новая_версия.rpm Флаг --requires можно сокращенно заменить на -R. В принципе эту операцию желательно выполнять каждый раз после сборки новой версии пакета. То есть maintainer должен понимать, каким образом меняются зависимости у его пакетов, безотносительно того есть там шелл-скрипты или нет. Так вот, если в новой версии не добавилось паталогических зависимостей, то есть если опять всё устраивает, то можно опять ничего не трогать. Если же добавились какие-то нежелательные зависимости, то придётся что-то трогать. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 2007-09-11 19:20 ` Alexey Tourbin @ 2007-09-11 19:55 ` Led 2007-09-11 20:09 ` Alexey Tourbin 2007-09-16 21:36 ` [devel] AutoReq: yes, shell Michael Shigorin 1 sibling, 1 reply; 11+ messages in thread From: Led @ 2007-09-11 19:55 UTC (permalink / raw) To: ALT Linux Team development discussions 2007/9/11, Alexey Tourbin <at@altlinux.ru>: > On Tue, Sep 11, 2007 at 08:27:50PM +0300, Led wrote: > > Это серьёзно перелопачивать shell-скрипты, которых может быть в паукете "не > > один" и "немаленький". В этом случае разговор о поиске > > exec ... > > Увы, бывают действительно "кривоватые" скрипты, да и не совсем > кривоватые, в которых поиск зависимостей дает слишком много результатов. > Всё же стоит попытаться выяснить, много ли там перелопачивать или нет. Бывают и "кривоватие"... Но, всё же, переделывать /usr/bin/foo на FOO=/usr/bin/foo $FOO ? ИМХО это не исправление "кривостей", а "расстановка костылей" (?) > > Ни при чём. Когда я говорю "не доверять", то имею ввиду, что сначала делаю > > сборку с find.req.shell, анализирую, что действительно requires, добавляю это > > в явный requires в спек и ставлю 'Autoreq yes, noshell'. Как раз потому что > > меня абсолютно не устраивает и "шлякварь", и Fedora, пакеты которой зачастую > > тянут за собой "что не попадя":) > > Лучше делать так: собрать один раз, и, если поиск шелл-зависимостей > устраивает, ничего не трогать. Ну, это, как бы, само-собой понятно:) > После сборки новой версии, если старый > пакет установлен, просто сравнить зависимости: > compare_packages -i -a --requires /*/новая_версия.rpm > или, если не установлен > compare_packages -a --requires -- /*/старая_версия.rpm -- /*/новая_версия.rpm Ок, спасибо. Нверное так и стОит делать. > Флаг --requires можно сокращенно заменить на -R. В принципе эту > операцию желательно выполнять каждый раз после сборки новой версии > пакета. То есть maintainer должен понимать, каким образом меняются > зависимости у его пакетов, безотносительно того есть там шелл-скрипты > или нет. Логично, возражений нет. -- Led. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 2007-09-11 19:55 ` Led @ 2007-09-11 20:09 ` Alexey Tourbin 2007-09-11 20:26 ` Led 0 siblings, 1 reply; 11+ messages in thread From: Alexey Tourbin @ 2007-09-11 20:09 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 5773 bytes --] On Tue, Sep 11, 2007 at 10:55:20PM +0300, Led wrote: > 2007/9/11, Alexey Tourbin <at@altlinux.ru>: > > On Tue, Sep 11, 2007 at 08:27:50PM +0300, Led wrote: > > > Это серьёзно перелопачивать shell-скрипты, которых может быть в паукете "не > > > один" и "немаленький". В этом случае разговор о поиске > > > exec ... > > > > Увы, бывают действительно "кривоватые" скрипты, да и не совсем > > кривоватые, в которых поиск зависимостей дает слишком много результатов. > > Всё же стоит попытаться выяснить, много ли там перелопачивать или нет. > > Бывают и "кривоватие"... Но, всё же, переделывать > /usr/bin/foo > на > FOO=/usr/bin/foo > $FOO > ? > ИМХО это не исправление "кривостей", а "расстановка костылей" (?) Увы, я тоже смотрю на это как на расстановку костылей. С другой стороны, так можно договориться до того, что нужно похерить всю идею автоматического поиска зависимостей -- просто потому, что существуют условные зависимости. Они существуют не только в шелле, но и в других интепретируемых языках. Просто в шелле с ними сложнее бороться. В некоторых случаях очень тяжело сказать, стоит ли расставлять костыли, или проще отключить поиск зависимостей в конкретном файле. См. напр. git.git v1.5.1.1-113-g6fcc309 (ниже целиком). Но отключить поиск зависимостей в отдельно взятом файле, если сыскалась паршивая овца, вполне себе можно: %add_findreq_skiplist %_bindir/овца К сожалению, пока нет способа игнорировать сами зависимости определенного вида. commit 6fcc3098dc58239f3437779740efee7a5c87ae20 Author: Dmitry V. Levin <ldv@altlinux> Date: Thu Apr 12 13:26:49 2007 +0000 git-mergetool.sh: Protect merge tool names from "sh --find-requires" diff --git a/git-mergetool.sh b/git-mergetool.sh index e62351b..4db2a80 100755 --- a/git-mergetool.sh +++ b/git-mergetool.sh @@ -191,10 +191,10 @@ merge_file () { case "$merge_tool" in kdiff3) if base_present ; then - (kdiff3 --auto --L1 "$path (Base)" -L2 "$path (Local)" --L3 "$path (Remote)" \ + ($merge_tool --auto --L1 "$path (Base)" -L2 "$path (Local)" --L3 "$path (Remote)" \ -o "$path" -- "$BASE" "$LOCAL" "$REMOTE" > /dev/null 2>&1) else - (kdiff3 --auto -L1 "$path (Local)" --L2 "$path (Remote)" \ + ($merge_tool --auto -L1 "$path (Local)" --L2 "$path (Remote)" \ -o "$path" -- "$LOCAL" "$REMOTE" > /dev/null 2>&1) fi status=$? @@ -202,9 +202,9 @@ merge_file () { ;; tkdiff) if base_present ; then - tkdiff -a "$BASE" -o "$path" -- "$LOCAL" "$REMOTE" + $merge_tool -a "$BASE" -o "$path" -- "$LOCAL" "$REMOTE" else - tkdiff -o "$path" -- "$LOCAL" "$REMOTE" + $merge_tool -o "$path" -- "$LOCAL" "$REMOTE" fi status=$? save_backup @@ -218,13 +218,13 @@ merge_file () { xxdiff) touch "$BACKUP" if base_present ; then - xxdiff -X --show-merged-pane \ + $merge_tool -X --show-merged-pane \ -R 'Accel.SaveAsMerged: "Ctrl-S"' \ -R 'Accel.Search: "Ctrl+F"' \ -R 'Accel.SearchForward: "Ctrl-G"' \ --merged-file "$path" -- "$LOCAL" "$BASE" "$REMOTE" else - xxdiff -X --show-merged-pane \ + $merge_tool -X --show-merged-pane \ -R 'Accel.SaveAsMerged: "Ctrl-S"' \ -R 'Accel.Search: "Ctrl+F"' \ -R 'Accel.SearchForward: "Ctrl-G"' \ @@ -236,18 +236,18 @@ merge_file () { opendiff) touch "$BACKUP" if base_present; then - opendiff "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$path" | cat + $merge_tool "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$path" | cat else - opendiff "$LOCAL" "$REMOTE" -merge "$path" | cat + $merge_tool "$LOCAL" "$REMOTE" -merge "$path" | cat fi check_unchanged save_backup ;; - emerge) + emacs) if base_present ; then - emacs -f emerge-files-with-ancestor-command "$LOCAL" "$REMOTE" "$BASE" "$path" + $merge_tool -f emerge-files-with-ancestor-command "$LOCAL" "$REMOTE" "$BASE" "$path" else - emacs -f emerge-files-command "$LOCAL" "$REMOTE" "$path" + $merge_tool -f emerge-files-command "$LOCAL" "$REMOTE" "$path" fi status=$? save_backup @@ -293,8 +293,11 @@ done if test -z "$merge_tool"; then merge_tool=`git-config merge.tool` case "$merge_tool" in - kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | "") + kdiff3 | tkdiff | xxdiff | meld | opendiff | emacs | vimdiff | "") ;; # happy + emerge) + merge_tool=emacs + ;; *) echo >&2 "git config option merge.tool set to unknown tool: $merge_tool" echo >&2 "Resetting to default..." @@ -305,7 +308,7 @@ fi if test -z "$merge_tool" ; then if type kdiff3 >/dev/null 2>&1 && test -n "$DISPLAY"; then - merge_tool="kdiff3"; + merge_tool=kdiff3 elif type tkdiff >/dev/null 2>&1 && test -n "$DISPLAY"; then merge_tool=tkdiff elif type xxdiff >/dev/null 2>&1 && test -n "$DISPLAY"; then @@ -315,7 +318,7 @@ if test -z "$merge_tool" ; then elif type opendiff >/dev/null 2>&1; then merge_tool=opendiff elif type emacs >/dev/null 2>&1; then - merge_tool=emerge + merge_tool=emacs elif type vimdiff >/dev/null 2>&1; then merge_tool=vimdiff else @@ -325,18 +328,12 @@ if test -z "$merge_tool" ; then fi case "$merge_tool" in - kdiff3|tkdiff|meld|xxdiff|vimdiff|opendiff) + emacs|kdiff3|meld|opendiff|tkdiff|vimdiff|xxdiff) if ! type "$merge_tool" > /dev/null 2>&1; then echo "The merge tool $merge_tool is not available" exit 1 fi ;; - emerge) - if ! type "emacs" > /dev/null 2>&1; then - echo "Emacs is not available" - exit 1 - fi - ;; *) echo "Unknown merge tool: $merge_tool" exit 1 [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 2007-09-11 20:09 ` Alexey Tourbin @ 2007-09-11 20:26 ` Led 2007-09-11 20:35 ` Alexey Tourbin 0 siblings, 1 reply; 11+ messages in thread From: Led @ 2007-09-11 20:26 UTC (permalink / raw) To: ALT Linux Team development discussions 2007/9/11, Alexey Tourbin <at@altlinux.ru>: > On Tue, Sep 11, 2007 at 10:55:20PM +0300, Led wrote: > > 2007/9/11, Alexey Tourbin <at@altlinux.ru>: > > > On Tue, Sep 11, 2007 at 08:27:50PM +0300, Led wrote: > > > > Это серьёзно перелопачивать shell-скрипты, которых может быть в паукете "не > > > > один" и "немаленький". В этом случае разговор о поиске > > > > exec ... > > > > > > Увы, бывают действительно "кривоватые" скрипты, да и не совсем > > > кривоватые, в которых поиск зависимостей дает слишком много результатов. > > > Всё же стоит попытаться выяснить, много ли там перелопачивать или нет. > > > > Бывают и "кривоватие"... Но, всё же, переделывать > > /usr/bin/foo > > на > > FOO=/usr/bin/foo > > $FOO > > ? > > ИМХО это не исправление "кривостей", а "расстановка костылей" (?) > > Увы, я тоже смотрю на это как на расстановку костылей. С другой > стороны, так можно договориться до того, что нужно похерить всю идею > автоматического поиска зависимостей -- просто потому, что существуют > условные зависимости. Они существуют не только в шелле, но и в других > интепретируемых языках. Просто в шелле с ними сложнее бороться. Я и не предлагал что-либо "похерить". Просто констатировал факт, что, в случае с shell-скриптами, автоматический поиск зависимостей - это не панацея, а какая-то помощь, этим стоит пользоваться но полагаться ТОЛЬКО полностью на автоматику в этом случае при сборке пакета всё же стОит. > > В некоторых случаях очень тяжело сказать, стоит ли расставлять костыли, > или проще отключить поиск зависимостей в конкретном файле. См. напр. > git.git v1.5.1.1-113-g6fcc309 (ниже целиком). > > Но отключить поиск зависимостей в отдельно взятом файле, если сыскалась > паршивая овца, вполне себе можно: > %add_findreq_skiplist %_bindir/овца Иногда так и делаю. > > К сожалению, пока нет способа игнорировать сами зависимости > определенного вида. А нельзя ли сделать детализацию для buildreq и findreq: кроме найденной зависимости выводить и имя конктретного файла-"виновника" этой зависимости? Хотя, для buildreq - это, скорее всего, нереально... а findreq вроде бы и возможно (правда, неверное, придётся какой-то ключ или макрос для rpmbuild добавить?). Я буквально пару дней назад натолкнулся на случай, в котором подобная "фишка" сэкономила бы мне несколько драгоценных минут. Думаю, многим была бы полкзна, в частности - для обозначения место(а), где имеет смысл распилить пакет на субпакеты. -- Led. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 2007-09-11 20:26 ` Led @ 2007-09-11 20:35 ` Alexey Tourbin 0 siblings, 0 replies; 11+ messages in thread From: Alexey Tourbin @ 2007-09-11 20:35 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 1273 bytes --] On Tue, Sep 11, 2007 at 11:26:15PM +0300, Led wrote: > А нельзя ли сделать детализацию для buildreq и findreq: кроме > найденной зависимости выводить и имя конктретного файла-"виновника" > этой зависимости? Хотя, для buildreq - это, скорее всего, нереально... > а findreq вроде бы и возможно (правда, неверное, придётся какой-то > ключ или макрос для rpmbuild добавить?). Я буквально пару дней назад > натолкнулся на случай, в котором подобная "фишка" сэкономила бы мне > несколько драгоценных минут. Думаю, многим была бы полкзна, в > частности - для обозначения место(а), где имеет смысл распилить пакет > на субпакеты. В новой версии rpm-build ключик этот называется rpmbuild --verbose. Более того, в новой версии rpm-build почти все скрипты /usr/lib/rpm/* могут работать без билдрута и тоже берут опцию --verbose. Так что возможности для анализа и отладки многократно возрастут. Типа всё для человека. $ /usr/lib/rpm/shell.req -v /usr/bin/gitk /usr/bin/gitk: line 12: syntax error near unexpected token `(' /usr/bin/gitk: line 12: ` if {[info exists env(GIT_DIR)]} {' shell.req: /usr/bin/gitk is wish script! shell.req: /usr/bin/gitk: wish -> /usr/bin/wish -> ... (via which) shell.req: /usr/bin/gitk: /usr/bin/wish -> tk (via rpmdb) tk $ [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* [devel] AutoReq: yes, shell 2007-09-11 19:20 ` Alexey Tourbin 2007-09-11 19:55 ` Led @ 2007-09-16 21:36 ` Michael Shigorin 1 sibling, 0 replies; 11+ messages in thread From: Michael Shigorin @ 2007-09-16 21:36 UTC (permalink / raw) To: ALT Linux Team development discussions On Tue, Sep 11, 2007 at 11:20:54PM +0400, Alexey Tourbin wrote: > > Это серьёзно перелопачивать shell-скрипты, которых может быть > > в паукете "не один" и "немаленький". В этом случае разговор о > > поиске exec ... > Увы, бывают действительно "кривоватые" скрипты, да и не совсем > кривоватые, в которых поиск зависимостей дает слишком много > результатов. Всё же стоит попытаться выяснить, много ли там > перелопачивать или нет. Ага, если интересно, можешь посмотреть mkcdrec.git у меня в гитальте ;) Близкий к клиническому случай, при этом бинарная сборка для федоры на сизифе/4.0 работает. -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2007-09-16 21:36 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-09-11 16:43 [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 Alexey Tourbin 2007-09-11 16:55 ` Led 2007-09-11 17:14 ` [devel] shell dependencies Alexey Tourbin 2007-09-11 17:19 ` [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 Alexey I. Froloff 2007-09-11 17:27 ` Led 2007-09-11 19:20 ` Alexey Tourbin 2007-09-11 19:55 ` Led 2007-09-11 20:09 ` Alexey Tourbin 2007-09-11 20:26 ` Led 2007-09-11 20:35 ` Alexey Tourbin 2007-09-16 21:36 ` [devel] AutoReq: yes, shell Michael Shigorin
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git