ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] how to treat "shell.req ... (skip)" warnings?
@ 2008-03-31  9:08 Kirill Maslinsky
  2008-03-31 10:02 ` Damir Shayhutdinov
  2008-03-31 11:16 ` Alexey Tourbin
  0 siblings, 2 replies; 6+ messages in thread
From: Kirill Maslinsky @ 2008-03-31  9:08 UTC (permalink / raw)
  To: ALT Devel discussion list

Приветствую!

Подскажите, пожалуйста, как правильно реагировать на предупреждения
от shell.req с пометкой "X not found (skip)"? 

На примере eciadsl-usermode
(Подозреваю, что в данном случае мне посоветуют переписать скрипты, 
чтобы они не использовали route/ifconfig, однако ответ про общий случай
тоже хотелось бы услышать)

[...]

find-requires: running scripts (files,lib,pam,perl,pkgconfig,pkgconfiglib,python,shebang,shell,static,symlinks)
/usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-data.pl syntax OK
/usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-uc.pl syntax OK
/usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-vendor-device.pl syntax OK
shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-config-text: su not found (skip)
shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-doctor: lspci not found (skip)
shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-doctor: route not found (skip)
shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-start: ifconfig not found (skip)
shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-start: lspci not found (skip)
shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-start: route not found (skip)
shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-testconnection: beep not found (skip)
shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-testconnection: ifconfig not found (skip)
shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-testconnection: lsusb not found (skip)
shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-testconnection: ping not found (skip)
+ exit 0
Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1, rpmlib(CompressedFileNames) <= 3.0.4-1
Requires(pre): /bin/sh
Requires(post): /bin/sh
Requires(preun): /bin/sh
Requires(postun): /bin/sh
Requires: ppp, rp-pppoe, tcl, tk, /bin/awk, /bin/bash, /bin/cat, /bin/chown, /bin/cp, /bin/egrep, /bin/grep, /bin/lsmod, /bin/mkdir, /bin/mknod, /bin/mount, /bin/mv, /bin/nice, /bin/pidof, /bin/ps, /bin/rm, /bin/sed, /bin/sleep, /bin/stty, /bin/tail, /sbin/depmod, /sbin/modprobe, /usr/bin/killall, /usr/bin/perl, /usr/bin/tee, /usr/bin/which, /usr/bin/wish, libc.so.6(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.3.4)(64bit), libc.so.6(GLIBC_2.4)(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), rtld(GNU_HASH)

[...]

--
Kirill Maslinsky
ALT Linux Team


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] how to treat "shell.req ... (skip)" warnings?
  2008-03-31  9:08 [devel] how to treat "shell.req ... (skip)" warnings? Kirill Maslinsky
@ 2008-03-31 10:02 ` Damir Shayhutdinov
  2008-03-31 10:32   ` Kirill Maslinsky
  2008-03-31 11:16 ` Alexey Tourbin
  1 sibling, 1 reply; 6+ messages in thread
From: Damir Shayhutdinov @ 2008-03-31 10:02 UTC (permalink / raw)
  To: ALT Linux Team development discussions

>  Подскажите, пожалуйста, как правильно реагировать на предупреждения
>  от shell.req с пометкой "X not found (skip)"?
>
>  На примере eciadsl-usermode
>  (Подозреваю, что в данном случае мне посоветуют переписать скрипты,
>  чтобы они не использовали route/ifconfig, однако ответ про общий случай
>  тоже хотелось бы услышать)

Наверное надо либо переписать на полный путь (/bin/su) либо ставить
эти пакеты в сборочную среду. Иначе поиск зависимостей не может
понять, толи это внешняя программа вызывается, толи внутренняя функция
из какого-нибудь вложенного файла.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] how to treat "shell.req ... (skip)" warnings?
  2008-03-31 10:02 ` Damir Shayhutdinov
@ 2008-03-31 10:32   ` Kirill Maslinsky
  0 siblings, 0 replies; 6+ messages in thread
From: Kirill Maslinsky @ 2008-03-31 10:32 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Mon, Mar 31, 2008 at 02:02:32PM +0400, Damir Shayhutdinov wrote:
> >  Подскажите, пожалуйста, как правильно реагировать на предупреждения
> >  от shell.req с пометкой "X not found (skip)"?
> >
> >  На примере eciadsl-usermode
> >  (Подозреваю, что в данном случае мне посоветуют переписать скрипты,
> >  чтобы они не использовали route/ifconfig, однако ответ про общий случай
> >  тоже хотелось бы услышать)
> 
> Наверное надо либо переписать на полный путь (/bin/su) либо ставить
> эти пакеты в сборочную среду. Иначе поиск зависимостей не может
> понять, толи это внешняя программа вызывается, толи внутренняя функция
> из какого-нибудь вложенного файла.

Хм, оба предложенные варианта представляются overkill'ом в общем случае
(да и в конкретном обсуждаемом тоже): 

1. Канонизация всех путей в скрипте -- кажется неоправданным перепахиванием 
   исходного текста: а как, например, потом патчи накладывать?
2. Включение в сборочную среду всех фактически установочных зависимостей 
   пакета тоже кажется неоправданным раздуванием сборочной среды.
   
Иначе говоря, этот (skip) следует читать так:
 "тут автоматика по поиску зависимостей справиться не смогла, поэтому
 ув. мантейнер, проверьте полноту установочных зависимостей пакета"

 Верно?

--
Kirill Maslinsky
ALT Linux Team


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] how to treat "shell.req ... (skip)" warnings?
  2008-03-31  9:08 [devel] how to treat "shell.req ... (skip)" warnings? Kirill Maslinsky
  2008-03-31 10:02 ` Damir Shayhutdinov
@ 2008-03-31 11:16 ` Alexey Tourbin
  2008-03-31 11:41   ` Kirill Maslinsky
  1 sibling, 1 reply; 6+ messages in thread
From: Alexey Tourbin @ 2008-03-31 11:16 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 2056 bytes --]

On Mon, Mar 31, 2008 at 01:08:52PM +0400, Kirill Maslinsky wrote:
> Подскажите, пожалуйста, как правильно реагировать на предупреждения
> от shell.req с пометкой "X not found (skip)"? 

В данном случае это стоит воспринимать как информацию о "грязной
сборке".  Грязная сборка может привести к недостающим зависимостям
у пакета.  Сборка является грязной, если она проходит либо в урезанной
хост-системе (в которой некоторые пактеты, нужные для разрешения
зависимостей, не установлены), либо в хешере без contents_index_bin.
Последнее случается, когда хеш репозитария не синхронизируется, а хешер
по отдельности выкачивает недостающие пакеты через apt-get.

При чистовой сборке все названия команд из shell.req пробиваются по
contents_index_bin (то есть по полному индексу команд репозитария,
который формируется на основе Sisyphus/*/base/contents_index),
и зависимости теряться не будут.

> shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-config-text: su not found (skip)
> shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-doctor: lspci not found (skip)
> shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-doctor: route not found (skip)
> shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-start: ifconfig not found (skip)
> shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-start: lspci not found (skip)
> shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-start: route not found (skip)
> shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-testconnection: beep not found (skip)
> shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-testconnection: ifconfig not found (skip)
> shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-testconnection: lsusb not found (skip)
> shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-testconnection: ping not found (skip)

Кажется, Вы собираете хешером без contents_index_bin.
ifconfig и ping в живых системах обычно бывают.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] how to treat "shell.req ... (skip)" warnings?
  2008-03-31 11:16 ` Alexey Tourbin
@ 2008-03-31 11:41   ` Kirill Maslinsky
  2008-03-31 11:56     ` Alexey Tourbin
  0 siblings, 1 reply; 6+ messages in thread
From: Kirill Maslinsky @ 2008-03-31 11:41 UTC (permalink / raw)
  To: ALT Devel discussion list

On Mon, Mar 31, 2008 at 03:16:04PM +0400, Alexey Tourbin wrote:
> On Mon, Mar 31, 2008 at 01:08:52PM +0400, Kirill Maslinsky wrote:
> > Подскажите, пожалуйста, как правильно реагировать на предупреждения
> > от shell.req с пометкой "X not found (skip)"? 
> 
> В данном случае это стоит воспринимать как информацию о "грязной
> сборке".  Грязная сборка может привести к недостающим зависимостям
> у пакета.  Сборка является грязной, если она проходит либо в урезанной
> хост-системе (в которой некоторые пактеты, нужные для разрешения
> зависимостей, не установлены), либо в хешере без contents_index_bin.
> Последнее случается, когда хеш репозитария не синхронизируется, а хешер
> по отдельности выкачивает недостающие пакеты через apt-get.

Мой случай явно последний (hasher), только пока непонятно, что необходимо 
сделать, чтобы "хэш репозитория синхронизировался". Простите за
несообразительность, можно поподробнее об этом?

> При чистовой сборке все названия команд из shell.req пробиваются по
> contents_index_bin (то есть по полному индексу команд репозитария,
> который формируется на основе Sisyphus/*/base/contents_index),
> и зависимости теряться не будут.

[...]

Вопрос уточняющий: будут ли недостающие зависимости, вызванные грязной 
сборкой на стороне мантейнера, восполнены при пересборке пакета при
прохождении в Sisyphus?

--
Kirill Maslinsky
ALT Linux Team


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] how to treat "shell.req ... (skip)" warnings?
  2008-03-31 11:41   ` Kirill Maslinsky
@ 2008-03-31 11:56     ` Alexey Tourbin
  0 siblings, 0 replies; 6+ messages in thread
From: Alexey Tourbin @ 2008-03-31 11:56 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 2833 bytes --]

On Mon, Mar 31, 2008 at 03:41:17PM +0400, Kirill Maslinsky wrote:
> On Mon, Mar 31, 2008 at 03:16:04PM +0400, Alexey Tourbin wrote:
> > On Mon, Mar 31, 2008 at 01:08:52PM +0400, Kirill Maslinsky wrote:
> > > Подскажите, пожалуйста, как правильно реагировать на предупреждения
> > > от shell.req с пометкой "X not found (skip)"? 
> > 
> > В данном случае это стоит воспринимать как информацию о "грязной
> > сборке".  Грязная сборка может привести к недостающим зависимостям
> > у пакета.  Сборка является грязной, если она проходит либо в урезанной
> > хост-системе (в которой некоторые пактеты, нужные для разрешения
> > зависимостей, не установлены), либо в хешере без contents_index_bin.
> > Последнее случается, когда хеш репозитария не синхронизируется, а хешер
> > по отдельности выкачивает недостающие пакеты через apt-get.
> 
> Мой случай явно последний (hasher), только пока непонятно, что необходимо 
> сделать, чтобы "хэш репозитория синхронизировался". Простите за
> несообразительность, можно поподробнее об этом?

Хеш репозитария это то, что находится в каталогах
Sisyphus/{$arch,noarch}/base/.

Это значит, что нужно (хотя бы частично) синхронизировать сизиф
локально, и в sources.list, который используется для сборки, должны
быть пути к репозитариям через file://.

rpm [alt] file:/ALT/Sisyphus i586 classic
rpm [alt] file:/ALT/Sisyphus noarch classic

Тогда будет задействован код из /usr/bin/hsh-sh-cache-contents-functions,
который формирует $HASHER_BUILD_DIR/cache/contents/contents_index_bin
на основе Sisyphus/{$arch,noarch}/base/contents_index.

# Find contents_index files corresponding to sources.list repositories.
contents_index_list=
init_contents_index_list()
{       
        contents_index_list="$(awk '
                (NF==4 && $1=="rpm"){printf("%s/%s/base/contents_index\n",$2,$3)}
                (NF==5 && $1=="rpm"){printf("%s/%s/base/contents_index\n",$3,$4)}
                ' <aptbox/etc/apt/sources.list |
                        while IFS=: read uri_scheme f; do
                                [ -r "$f" ] || continue
                                printf %s\\n "$f"
                        done)"
        if [ -n "$contents_index_list" ]; then
                verbose 'Initialized contents index list.'
        else    
                verbose "No contents indices available, nothing to do."
                contents_index_bin=
                contents_index_all=
        fi
}

То есть для чистовой сборки нужно синхронизировать Sisyphus/$arch/
и Sisyphus/noarch/ каталоги, и далее недостающие для сборки
Sisyphus/files/{$arch,noarch}/RPMS/ файлы.

> Вопрос уточняющий: будут ли недостающие зависимости, вызванные грязной 
> сборкой на стороне мантейнера, восполнены при пересборке пакета при
> прохождении в Sisyphus?

Да.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-03-31 11:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-31  9:08 [devel] how to treat "shell.req ... (skip)" warnings? Kirill Maslinsky
2008-03-31 10:02 ` Damir Shayhutdinov
2008-03-31 10:32   ` Kirill Maslinsky
2008-03-31 11:16 ` Alexey Tourbin
2008-03-31 11:41   ` Kirill Maslinsky
2008-03-31 11:56     ` Alexey Tourbin

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