ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] packagereq/buildreq: missing build deps
@ 2003-11-13 15:59 Alexey Tourbin
  2003-11-14 14:31 ` [devel] " Alexey Tourbin
  0 siblings, 1 reply; 8+ messages in thread
From: Alexey Tourbin @ 2003-11-13 15:59 UTC (permalink / raw)
  To: devel

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

Greetings!

При незапланированной пересборке swig (!) мне удалось обнаружить
следующий недостаток в packagereq/buildreq (здесь и далее zsh syntax):

$ rpm -qf /usr/share/ruby/1.8/Env.rb /usr/bin/ruby
ruby-stdlibs-1.8-alt9
ruby-1.8-alt9
$ >prog
#!/bin/sh
cat /usr/share/ruby/1.8/Env.rb /usr/bin/ruby &>/dev/null
$ chmod +x prog
$ packagereq -o /dev/stdout ./prog
packagereq: building requires list: ruby-stdlibs
ruby-stdlibs
$

Иными словами, buildreq считает, что пакет basename-чтоугодно должен
обязательно зависеть от basename.  Однако (в данном случае) это не так.

$ rpm -q --requires ruby-stdlibs | grep ruby
libruby = 1.8-alt9
libruby.so.1.8
$

Я уже предлагал автору packagereq усложнить алгоритм для "усечения"
сборочных зависимостей, чтобы этот алгоритм был основан на анализе
зависимостей между пакетами.  Надеюсь, что в ближайшее время мне удастся
подготовить формальное описание этого алгоритма.

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

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

* [devel] Re: packagereq/buildreq: missing build deps
  2003-11-13 15:59 [devel] packagereq/buildreq: missing build deps Alexey Tourbin
@ 2003-11-14 14:31 ` Alexey Tourbin
  2003-11-14 14:33   ` Michael Shigorin
  0 siblings, 1 reply; 8+ messages in thread
From: Alexey Tourbin @ 2003-11-14 14:31 UTC (permalink / raw)
  To: devel

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

On Thu, Nov 13, 2003 at 06:59:05PM +0300, Alexey Tourbin wrote:
> Иными словами, buildreq считает, что пакет basename-чтоугодно должен
> обязательно зависеть от basename.  Однако (в данном случае) это не так.
> 
> $ rpm -q --requires ruby-stdlibs | grep ruby
> libruby = 1.8-alt9
> libruby.so.1.8
> $
> 
> Я уже предлагал автору packagereq усложнить алгоритм для "усечения"
> сборочных зависимостей, чтобы этот алгоритм был основан на анализе
> зависимостей между пакетами.  Надеюсь, что в ближайшее время мне удастся
> подготовить формальное описание этого алгоритма.

Вот как должен работать правильный алгоритм (демо-версия):

$ perl rpm.pl libruby libruby-devel ruby ruby-stdlibs
	ruby-stdlibs requires libruby.so.1.8 provided by libruby
		libruby optimized out
	ruby requires ruby-stdlibs provided by ruby-stdlibs
		ruby-stdlibs optimized out
result: ruby libruby-devel
$

Иными словами, из 4 пакетов (перечисленных в командной строке) остается
только два; причем buildreq вычисляет другой (неправильный) список.

Описание и реализацию я постараюсь предоставить в выходные.

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

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

* [devel] Re: packagereq/buildreq: missing build deps
  2003-11-14 14:31 ` [devel] " Alexey Tourbin
@ 2003-11-14 14:33   ` Michael Shigorin
  2003-11-14 15:12     ` Alexey Tourbin
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Shigorin @ 2003-11-14 14:33 UTC (permalink / raw)
  To: devel

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

On Fri, Nov 14, 2003 at 05:31:58PM +0300, Alexey Tourbin wrote:
> Вот как должен работать правильный алгоритм (демо-версия):
> Иными словами, из 4 пакетов (перечисленных в командной строке) остается
> только два; причем buildreq вычисляет другой (неправильный) список.
> Описание и реализацию я постараюсь предоставить в выходные.

Замечательно!

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/

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

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

* [devel] Re: packagereq/buildreq: missing build deps
  2003-11-14 14:33   ` Michael Shigorin
@ 2003-11-14 15:12     ` Alexey Tourbin
  2003-11-14 16:48       ` Alexey Tourbin
  0 siblings, 1 reply; 8+ messages in thread
From: Alexey Tourbin @ 2003-11-14 15:12 UTC (permalink / raw)
  To: devel

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

On Fri, Nov 14, 2003 at 04:33:17PM +0200, Michael Shigorin wrote:
> > Описание и реализацию я постараюсь предоставить в выходные.
> Замечательно!

Вот реальный пример (BuildRequires из perl-DBI):

$ perl rpm.pl libMySQL perl-DBD-Pg perl-DBD-mysql perl-Net-Daemon perl-PlRPC perl-Storable perl-devel
	perl-DBD-mysql requires libmysqlclient.so.12 provided by libMySQL
		libMySQL optimized out
	perl-PlRPC requires perl(Storable.pm) provided by perl-Storable
		perl-Storable optimized out
	perl-PlRPC requires perl(Net/Daemon.pm) provided by perl-Net-Daemon
		perl-Net-Daemon optimized out
result: perl-devel perl-DBD-mysql perl-DBD-Pg perl-PlRPC
$

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

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

* [devel] Re: packagereq/buildreq: missing build deps
  2003-11-14 15:12     ` Alexey Tourbin
@ 2003-11-14 16:48       ` Alexey Tourbin
  2003-11-14 16:52         ` Sergey Vlasov
  0 siblings, 1 reply; 8+ messages in thread
From: Alexey Tourbin @ 2003-11-14 16:48 UTC (permalink / raw)
  To: devel

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

On Fri, Nov 14, 2003 at 06:12:40PM +0300, Alexey Tourbin wrote:
> Вот реальный пример (BuildRequires из perl-DBI):

Ещё более сложный пример (по просьбе raorn):

$ perl rpm.pl `rpm -bE ~/RPM/SPECS/vim.spec | grep BuildPreReq | awk '{print$2}'`
package python-devel not found
        libatk-devel requires glib2-devel provided by glib2-devel
                glib2-devel optimized out
        libgtk+2-devel requires libatk-devel provided by libatk-devel
                libatk-devel optimized out
        glib2-devel requires pkgconfig provided by pkgconfig
                pkgconfig optimized out
        gtk+-devel requires glib-devel provided by glib-devel
                glib-devel optimized out
        libgtk+2-devel requires libpango-devel provided by libpango-devel
                libpango-devel optimized out
        libpango-devel requires libXft-devel provided by XFree86-devel
                XFree86-devel optimized out
result: unzip libattr-devel gtk+-devel tcl-devel libelf-devel libalternatives-devel libtinfo-devel libacl-devel ruby libruby-devel man libgtk+2-devel openmotif-devel libgpm-devel ctags xpm-devel libneXtaw-devel
$

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

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

* Re: [devel] Re: packagereq/buildreq: missing build deps
  2003-11-14 16:48       ` Alexey Tourbin
@ 2003-11-14 16:52         ` Sergey Vlasov
  2003-11-14 17:00           ` Alexey Tourbin
  0 siblings, 1 reply; 8+ messages in thread
From: Sergey Vlasov @ 2003-11-14 16:52 UTC (permalink / raw)
  To: devel

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

On Fri, Nov 14, 2003 at 07:48:45PM +0300, Alexey Tourbin wrote:
> On Fri, Nov 14, 2003 at 06:12:40PM +0300, Alexey Tourbin wrote:
> > Вот реальный пример (BuildRequires из perl-DBI):
> 
> Ещё более сложный пример (по просьбе raorn):
> 
> $ perl rpm.pl `rpm -bE ~/RPM/SPECS/vim.spec | grep BuildPreReq | awk '{print$2}'`
> package python-devel not found
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

А вот и баг выполз...

>         libatk-devel requires glib2-devel provided by glib2-devel
>                 glib2-devel optimized out
>         libgtk+2-devel requires libatk-devel provided by libatk-devel
>                 libatk-devel optimized out
>         glib2-devel requires pkgconfig provided by pkgconfig
>                 pkgconfig optimized out
>         gtk+-devel requires glib-devel provided by glib-devel
>                 glib-devel optimized out
>         libgtk+2-devel requires libpango-devel provided by libpango-devel
>                 libpango-devel optimized out
>         libpango-devel requires libXft-devel provided by XFree86-devel
>                 XFree86-devel optimized out
> result: unzip libattr-devel gtk+-devel tcl-devel libelf-devel libalternatives-devel libtinfo-devel libacl-devel ruby libruby-devel man libgtk+2-devel openmotif-devel libgpm-devel ctags xpm-devel libneXtaw-devel

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

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

* [devel] Re: packagereq/buildreq: missing build deps
  2003-11-14 16:52         ` Sergey Vlasov
@ 2003-11-14 17:00           ` Alexey Tourbin
  2003-11-14 17:07             ` Sergey Vlasov
  0 siblings, 1 reply; 8+ messages in thread
From: Alexey Tourbin @ 2003-11-14 17:00 UTC (permalink / raw)
  To: devel

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

On Fri, Nov 14, 2003 at 07:52:47PM +0300, Sergey Vlasov wrote:
> > $ perl rpm.pl `rpm -bE ~/RPM/SPECS/vim.spec | grep BuildPreReq | awk '{print$2}'`
> > package python-devel not found
>   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> А вот и баг выполз...

Это только прототип, на основе которого я пытаюсь понять, будут ли при
таком подходе проблемы.  Одна из возможных проблем (как видно ниже) -- 
взаимные зависимости между *-devel пакетами будут играть очень большую роль.
Т.е. критерий "optimized out" получается зыбкий, несмотря на то, что
зависимости выставлены напрямую.

А пакета python-devel действительно нет.

$ rpm -q python-devel
warning: package python-devel is not installed
$ rpm -q --whatprovides python-devel
python22-devel-2.2.2-alt3.1
$

> >         libatk-devel requires glib2-devel provided by glib2-devel
> >                 glib2-devel optimized out
> >         libgtk+2-devel requires libatk-devel provided by libatk-devel
> >                 libatk-devel optimized out
> >         glib2-devel requires pkgconfig provided by pkgconfig
> >                 pkgconfig optimized out
> >         gtk+-devel requires glib-devel provided by glib-devel
> >                 glib-devel optimized out
> >         libgtk+2-devel requires libpango-devel provided by libpango-devel
> >                 libpango-devel optimized out
> >         libpango-devel requires libXft-devel provided by XFree86-devel
> >                 XFree86-devel optimized out
> > result: unzip libattr-devel gtk+-devel tcl-devel libelf-devel libalternatives-devel libtinfo-devel libacl-devel ruby libruby-devel man libgtk+2-devel openmotif-devel libgpm-devel ctags xpm-devel libneXtaw-devel

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

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

* Re: [devel] Re: packagereq/buildreq: missing build deps
  2003-11-14 17:00           ` Alexey Tourbin
@ 2003-11-14 17:07             ` Sergey Vlasov
  0 siblings, 0 replies; 8+ messages in thread
From: Sergey Vlasov @ 2003-11-14 17:07 UTC (permalink / raw)
  To: devel

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

On Fri, Nov 14, 2003 at 08:00:05PM +0300, Alexey Tourbin wrote:
> On Fri, Nov 14, 2003 at 07:52:47PM +0300, Sergey Vlasov wrote:
> > > $ perl rpm.pl `rpm -bE ~/RPM/SPECS/vim.spec | grep BuildPreReq | awk '{print$2}'`
> > > package python-devel not found
> >   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > А вот и баг выполз...
> 
> Это только прототип, на основе которого я пытаюсь понять, будут ли при
> таком подходе проблемы.  Одна из возможных проблем (как видно ниже) -- 
> взаимные зависимости между *-devel пакетами будут играть очень большую роль.
> Т.е. критерий "optimized out" получается зыбкий, несмотря на то, что
> зависимости выставлены напрямую.
> 
> А пакета python-devel действительно нет.
> 
> $ rpm -q python-devel
> warning: package python-devel is not installed
> $ rpm -q --whatprovides python-devel
> python22-devel-2.2.2-alt3.1

Т.е. с точки зрения apt такой пакет есть.  Более того:

$ cat /etc/buildreqs/packages/substitute.d/python22-devel 
python-devel

Так что придётся это обрабатывать...

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

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

end of thread, other threads:[~2003-11-14 17:07 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-11-13 15:59 [devel] packagereq/buildreq: missing build deps Alexey Tourbin
2003-11-14 14:31 ` [devel] " Alexey Tourbin
2003-11-14 14:33   ` Michael Shigorin
2003-11-14 15:12     ` Alexey Tourbin
2003-11-14 16:48       ` Alexey Tourbin
2003-11-14 16:52         ` Sergey Vlasov
2003-11-14 17:00           ` Alexey Tourbin
2003-11-14 17:07             ` Sergey Vlasov

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