ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] lua-rpm-0.1 (squeeze.lua)
@ 2005-04-08  2:34 Alexey Tourbin
  2005-04-08  7:12 ` [devel] " Michael Shigorin
  0 siblings, 1 reply; 12+ messages in thread
From: Alexey Tourbin @ 2005-04-08  2:34 UTC (permalink / raw)
  To: devel


[-- Attachment #1.1: Type: text/plain, Size: 14086 bytes --]

Здравствуйте.
Я научился программировать на lua. :)

Кто-нибудь сталкивался?  Язычок в принципе ничего.  Очень раздражает
отсутствие 'continue' в цикле (при том, что есть 'break').  Разработчики
языка не хотят добавлять continue по каким-то принципиальным
соображениям.  В результате вместо

	while ... do
		if ... then
			continue
		end
	end

приходится писать

	while ... do
		while true do
			if ... then
				break
			end
			break
		end
	end

Ну так вот.  Алгоритм оптимизации зависимостей в BuildRequires.
Происходит в два этапа: 1) expand: список зависимостей дополняется
настолько, насколько это возможно; 2) squeeze: список зависимостей
сжимается настолько, насколько это возможно.

Ниже приводится протокол выполнения алгоритма для списка пакетов
{ rpm-build, xvfb-run }.  На выходе получается тот же самый список (т.е.
эти пакеты между собой не зависят, а всё остальное успешно выносится.
Usage: ./squeeze.lua <список пакетов>.

Для сборки нужно librpm-devel, liblua5-devel, для запуска lua5.

$ ./squeeze.lua rpm-build xvfb-run
        Expanding (pass 1, 2 packages)...
rpm-build -> librpmbuild
rpm-build -> rpm
rpm-build -> shadow-utils
Warning: autoconf provided by { autoconf_2.13, autoconf_2.5 }
rpm-build -> autoconf-common
Warning: automake provided by { automake_1.4, automake_1.8, automake_1.6, automake_1.7 }
rpm-build -> automake-common
rpm-build -> bison
rpm-build -> coreutils
rpm-build -> cpio
Warning: gcc provided by { gcc3.4, gcc2.95, gcc2.96 }
rpm-build -> gettext-tools
rpm-build -> glibc-devel
rpm-build -> file
Warning: kernel-headers provided by { kernel-headers-std-up, glibc-kernheaders, kernel24-headers }
Warning: libtool provided by { libtool_1.4, libtool_1.5 }
rpm-build -> m4
rpm-build -> make
rpm-build -> net-tools
rpm-build -> procps
rpm-build -> psmisc
rpm-build -> sed
rpm-build -> service
rpm-build -> sh
rpm-build -> texinfo
rpm-build -> which
rpm-build -> bzip2
rpm-build -> gzip
rpm-build -> info-install
rpm-build -> mktemp
rpm-build -> patch
rpm-build -> tar
rpm-build -> rpm-build-perl
rpm-build -> rpm-build-python
rpm-build -> rpm-build-tcl
rpm-build -> binutils
rpm-build -> diffutils
rpm-build -> findutils
rpm-build -> gawk
rpm-build -> glibc-core
rpm-build -> grep
rpm-build -> libpopt.so.0 -> libpopt
rpm-build -> librpm-4.0.4.so -> librpm
rpm-build -> perl(File/Basename.pm) -> perl-base
xvfb-run -> xorg-x11-Xvfb
xvfb-run -> xorg-x11-xauth
xvfb-run -> fakeroot
        Expanding (pass 2, 44 packages)...
Warning: autoconf provided by { autoconf_2.13, autoconf_2.5 }
Warning: automake provided by { automake_1.4, automake_1.8, automake_1.6, automake_1.7 }
Warning: gcc provided by { gcc3.4, gcc2.95, gcc2.96 }
Warning: kernel-headers provided by { kernel-headers-std-up, glibc-kernheaders, kernel24-headers }
Warning: libtool provided by { libtool_1.4, libtool_1.5 }
rpm -> alt-gpgkeys
shadow-utils -> shadow-convert
shadow-utils -> tcb-utils
shadow-utils -> /etc/pam.d -> pam-config
Warning: libpam(include) provided by { libpam2, libpam0 }
shadow-utils -> libpam.so.0 -> libpam0
shadow-utils -> libpam_userpass.so.1 -> pam0_userpass
shadow-utils -> libtcb.so.0 -> libtcb
shadow-utils -> pam0(system-auth-use_first_pass) -> pam0-config
shadow-utils -> pam_rootok.so -> pam
coreutils -> libtinfo.so.5 -> libtinfo
gettext-tools -> gettext
gettext-tools -> /etc/emacs/site-start.d -> emacs-base
gettext-tools -> libintl.so.3 -> libintl3
glibc-devel -> glibc
glibc-devel -> glibc-kernheaders
glibc-devel -> kernel-headers-common
file -> libmagic
file -> libz.so.1 -> zlib
procps -> libncurses.so.5 -> libncurses
psmisc -> SysVinit
service -> /bin/tput -> termutils
service -> chkconfig
bzip2 -> bzlib
binutils -> libbfd
glibc-core -> setup
librpm -> libbeecrypt
librpm -> libdb4.3
xorg-x11-Xvfb -> xorg-x11-server-common
xorg-x11-Xvfb -> libXau.so.6 -> xorg-x11-libs
xorg-x11-Xvfb -> libfreetype.so.6 -> freetype2
fakeroot -> getopt
        Expanding (pass 3, 75 packages)...
Warning: autoconf provided by { autoconf_2.13, autoconf_2.5 }
Warning: automake provided by { automake_1.4, automake_1.8, automake_1.6, automake_1.7 }
Warning: gcc provided by { gcc3.4, gcc2.95, gcc2.96 }
Warning: libtool provided by { libtool_1.4, libtool_1.5 }
tcb-utils -> pam_tcb -> pam0_tcb
pam0-config -> pam_passwdqc.so -> pam0_passwdqc
libtinfo -> terminfo
glibc -> glibc-nss
glibc -> glibc-locales
glibc -> glibc-gconv-modules
glibc -> iconv
glibc -> glibc-timezones
glibc -> glibc-utils
libncurses -> libgpm.so.1 -> libgpm
SysVinit -> /sbin/sulogin -> msulogin
xorg-x11-server-common -> xorg-x11-misc-fonts
xorg-x11-server-common -> xorg-x11-utils
xorg-x11-server-common -> util-linux
xorg-x11-server-common -> xinitrc
xorg-x11-server-common -> app-defaults
xorg-x11-libs -> freetype
xorg-x11-libs -> xorg-x11-locales
xorg-x11-libs -> libexpat.so.0 -> libexpat
xorg-x11-libs -> libfontconfig.so.1 -> fontconfig
        Expanding (pass 4, 95 packages)...
Warning: autoconf provided by { autoconf_2.13, autoconf_2.5 }
Warning: automake provided by { automake_1.4, automake_1.8, automake_1.6, automake_1.7 }
Warning: gcc provided by { gcc3.4, gcc2.95, gcc2.96 }
Warning: libtool provided by { libtool_1.4, libtool_1.5 }
pam0_tcb -> nss_tcb
pam0_tcb -> control
xorg-x11-misc-fonts -> chkfontpath
xorg-x11-misc-fonts -> xorg-x11-font-utils
xorg-x11-utils -> xterm
xinitrc -> bash
        Expanding (pass 5, 101 packages)...
Warning: autoconf provided by { autoconf_2.13, autoconf_2.5 }
Warning: automake provided by { automake_1.4, automake_1.8, automake_1.6, automake_1.7 }
Warning: gcc provided by { gcc3.4, gcc2.95, gcc2.96 }
Warning: libtool provided by { libtool_1.4, libtool_1.5 }
xterm -> libutempter
xterm -> alternatives
bash -> libhistory.so.4.3 -> libreadline
        Expanding (pass 6, 104 packages)...
Warning: autoconf provided by { autoconf_2.13, autoconf_2.5 }
Warning: automake provided by { automake_1.4, automake_1.8, automake_1.6, automake_1.7 }
Warning: gcc provided by { gcc3.4, gcc2.95, gcc2.96 }
Warning: libtool provided by { libtool_1.4, libtool_1.5 }
alternatives -> ed
        Expanding (pass 7, 105 packages)...
Warning: autoconf provided by { autoconf_2.13, autoconf_2.5 }
Warning: automake provided by { automake_1.4, automake_1.8, automake_1.6, automake_1.7 }
Warning: gcc provided by { gcc3.4, gcc2.95, gcc2.96 }
Warning: libtool provided by { libtool_1.4, libtool_1.5 }
{ rpm-build, xvfb-run, librpmbuild, rpm, shadow-utils, autoconf-common, automake-common, bison, coreutils, cpio, gettext-tools, glibc-devel, file, m4, make, net-tools, procps, psmisc, sed, service, sh, texinfo, which, bzip2, gzip, info-install, mktemp, patch, tar, rpm-build-perl, rpm-build-python, rpm-build-tcl, binutils, diffutils, findutils, gawk, glibc-core, grep, libpopt, librpm, perl-base, xorg-x11-Xvfb, xorg-x11-xauth, fakeroot, alt-gpgkeys, shadow-convert, tcb-utils, pam-config, libpam0, pam0_userpass, libtcb, pam0-config, pam, libtinfo, gettext, emacs-base, libintl3, glibc, glibc-kernheaders, kernel-headers-common, libmagic, zlib, libncurses, SysVinit, termutils, chkconfig, bzlib, libbfd, setup, libbeecrypt, libdb4.3, xorg-x11-server-common, xorg-x11-libs, freetype2, getopt, pam0_tcb, pam0_passwdqc, terminfo, glibc-nss, glibc-locales, glibc-gconv-modules, iconv, glibc-timezones, glibc-utils, libgpm, msulogin, xorg-x11-misc-fonts, xorg-x11-utils, util-linux, xinitrc, app-defaults, freetype, xorg-x11-locales, libexpat, fontconfig, nss_tcb, control, chkfontpath, xorg-x11-font-utils, xterm, bash, libutempter, alternatives, libreadline, ed }
        Squeezing terminfo ...
terminfo < termutils
        Squeezing alt-gpgkeys ...
alt-gpgkeys < rpm
        Squeezing setup ...
setup < glibc-core
        Squeezing emacs-base ...
emacs-base < /etc/emacs/site-start.d < gettext-tools
        Squeezing glibc-kernheaders ...
glibc-kernheaders < glibc-devel
        Squeezing glibc-core ...
glibc-core < libc.so.6 < getopt
        Squeezing getopt ...
getopt < fakeroot
        Squeezing app-defaults ...
app-defaults < xorg-x11-server-common
        Squeezing mktemp ...
mktemp < glibc-utils
        Squeezing net-tools ...
net-tools < rpm-build
        Squeezing chkfontpath ...
chkfontpath < xorg-x11-misc-fonts
        Squeezing pam-config ...
pam-config < pam0-config
        Squeezing patch ...
patch < rpm-build
        Squeezing msulogin ...
msulogin < /sbin/sulogin < SysVinit
        Squeezing rpm-build-python ...
rpm-build-python < rpm-build
        Squeezing automake-common ...
automake-common < gettext-tools
        Squeezing autoconf-common ...
autoconf-common < rpm-build
        Squeezing gzip ...
gzip < /bin/zcat < info-install
        Squeezing rpm-build-tcl ...
rpm-build-tcl < rpm-build
        Squeezing which ...
which < xinitrc
        Squeezing chkconfig ...
chkconfig < kernel-headers-common
        Squeezing xvfb-run ...
        Squeezing xorg-x11-misc-fonts ...
xorg-x11-misc-fonts < xorg-x11-server-common
        Squeezing libtcb ...
libtcb < libtcb.so.0 < shadow-convert
        Squeezing libexpat ...
libexpat < libexpat.so.0 < fontconfig
        Squeezing pam0-config ...
pam0-config < pam0(system-auth-use_first_pass) < shadow-utils
        Squeezing zlib ...
zlib < libz.so.1 < freetype2
        Squeezing gettext ...
gettext < gettext-tools
        Squeezing ed ...
ed < alternatives
        Squeezing info-install ...
info-install < /usr/sbin/uninstall_info < automake-common
        Squeezing psmisc ...
psmisc < service
        Squeezing glibc-gconv-modules ...
glibc-gconv-modules < glibc
        Squeezing xorg-x11-locales ...
xorg-x11-locales < xorg-x11-libs
        Squeezing cpio ...
cpio < rpm-build
        Squeezing pam0_passwdqc ...
pam0_passwdqc < pam_passwdqc.so < pam0-config
        Squeezing shadow-convert ...
shadow-convert < tcb-utils
        Squeezing glibc-timezones ...
glibc-timezones < glibc
        Squeezing bzlib ...
bzlib < bzip2
        Squeezing libpopt ...
libpopt < chkconfig
        Squeezing freetype2 ...
freetype2 < libfreetype.so.6 < xorg-x11-font-utils
        Squeezing control ...
control < util-linux
        Squeezing pam0_userpass ...
pam0_userpass < libpam_userpass.so.1 < shadow-utils
        Squeezing file ...
file < rpm-build
        Squeezing sh ...
sh < /bin/sh < app-defaults
        Squeezing libbfd ...
libbfd < binutils
        Squeezing xorg-x11-server-common ...
xorg-x11-server-common < xorg-x11-Xvfb
        Squeezing glibc ...
glibc < glibc-devel
        Squeezing libreadline ...
libreadline < libhistory.so.4.3 < bash
        Squeezing libgpm ...
libgpm < libgpm.so.1 < libncurses
        Squeezing tcb-utils ...
tcb-utils < shadow-utils
        Squeezing sed ...
sed < control
        Squeezing libdb4.3 ...
libdb4.3 < libdb-4.3.so < pam
        Squeezing bzip2 ...
bzip2 < /bin/bzcat < info-install
        Squeezing termutils ...
termutils < service
        Squeezing make ...
make < rpm-build
        Squeezing libutempter ...
libutempter < xterm
        Squeezing m4 ...
m4 < bison
        Squeezing librpmbuild ...
librpmbuild < rpm
        Squeezing alternatives ...
alternatives < xterm
        Squeezing nss_tcb ...
nss_tcb < pam0_tcb
        Squeezing tar ...
tar < gettext-tools
        Squeezing kernel-headers-common ...
kernel-headers-common < glibc-devel
        Squeezing libtinfo ...
libtinfo < libtinfo.so.5 < psmisc
        Squeezing libintl3 ...
libintl3 < gettext
        Squeezing libmagic ...
libmagic < file
        Squeezing iconv ...
iconv < glibc
        Squeezing grep ...
grep < control
        Squeezing fakeroot ...
fakeroot < xvfb-run
        Squeezing glibc-locales ...
glibc-locales < glibc
        Squeezing xorg-x11-xauth ...
xorg-x11-xauth < xvfb-run
        Squeezing rpm-build-perl ...
rpm-build-perl < rpm-build
        Squeezing findutils ...
findutils < control
        Squeezing SysVinit ...
SysVinit < psmisc
        Squeezing procps ...
procps < rpm-build
        Squeezing diffutils ...
diffutils < texinfo
        Squeezing libbeecrypt ...
libbeecrypt < librpm
        Squeezing freetype ...
freetype < xorg-x11-libs
        Squeezing bison ...
bison < rpm-build
        Squeezing bash ...
bash < xinitrc
        Squeezing libpam0 ...
libpam0 < pam_deny.so < pam0-config
        Squeezing libncurses ...
libncurses < libncurses.so.5 < procps
        Squeezing xorg-x11-font-utils ...
xorg-x11-font-utils < xorg-x11-misc-fonts
        Squeezing fontconfig ...
fontconfig < libfontconfig.so.1 < xorg-x11-libs
        Squeezing glibc-utils ...
glibc-utils < glibc
        Squeezing service ...
service < kernel-headers-common
        Squeezing pam ...
pam < pam_limits.so < pam0-config
        Squeezing gawk ...
gawk < alternatives
        Squeezing glibc-devel ...
glibc-devel < rpm-build
        Squeezing xorg-x11-Xvfb ...
xorg-x11-Xvfb < xvfb-run
        Squeezing texinfo ...
texinfo < rpm-build
        Squeezing rpm ...
rpm < rpm-build-python
        Squeezing util-linux ...
util-linux < xorg-x11-server-common
        Squeezing binutils ...
binutils < gettext-tools
        Squeezing glibc-nss ...
glibc-nss < glibc
        Squeezing shadow-utils ...
shadow-utils < libutempter
        Squeezing coreutils ...
coreutils < rpm-build-python
        Squeezing pam0_tcb ...
pam0_tcb < pam_tcb.so < pam0-config
        Squeezing perl-base ...
perl-base < rpm-build-perl
        Squeezing librpm ...
librpm < librpmbuild
        Squeezing xorg-x11-libs ...
xorg-x11-libs < xorg-x11-xauth
        Squeezing xterm ...
xterm < xinitrc
        Squeezing xinitrc ...
xinitrc < xorg-x11-server-common
        Squeezing gettext-tools ...
gettext-tools < rpm-build
        Squeezing xorg-x11-utils ...
xorg-x11-utils < xorg-x11-server-common
        Squeezing rpm-build ...
{ xvfb-run, rpm-build }
$

[-- Attachment #1.2: lua-rpm-0.1.tar.gz --]
[-- Type: application/x-gzip, Size: 3740 bytes --]

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

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

* [devel] Re: lua-rpm-0.1 (squeeze.lua)
  2005-04-08  2:34 [devel] lua-rpm-0.1 (squeeze.lua) Alexey Tourbin
@ 2005-04-08  7:12 ` Michael Shigorin
  2005-04-08 10:02   ` Nick S. Grechukh
  2005-04-08 15:35   ` Alexey Tourbin
  0 siblings, 2 replies; 12+ messages in thread
From: Michael Shigorin @ 2005-04-08  7:12 UTC (permalink / raw)
  To: devel

On Fri, Apr 08, 2005 at 06:34:25AM +0400, Alexey Tourbin wrote:
> Ну так вот.  Алгоритм оптимизации зависимостей в BuildRequires.

Т.е. предлагается обнюхать, а потом задвигать в rpm-build? :)

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


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

* Re: [devel] Re: lua-rpm-0.1 (squeeze.lua)
  2005-04-08  7:12 ` [devel] " Michael Shigorin
@ 2005-04-08 10:02   ` Nick S. Grechukh
  2005-04-08 10:06     ` Michael Shigorin
  2005-04-08 15:32     ` Alexey Tourbin
  2005-04-08 15:35   ` Alexey Tourbin
  1 sibling, 2 replies; 12+ messages in thread
From: Nick S. Grechukh @ 2005-04-08 10:02 UTC (permalink / raw)
  To: devel

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

On Friday 08 April 2005 10:12, Michael Shigorin wrote:
> On Fri, Apr 08, 2005 at 06:34:25AM +0400, Alexey Tourbin wrote:
> > Ну так вот.  Алгоритм оптимизации зависимостей в BuildRequires.
> Т.е. предлагается обнюхать, а потом задвигать в rpm-build? :)
страшно. пример:

мне для сборки требуется тулза A и тулз B.
я пишу PreBuildReq: A B

тулза B требует библиотеку C которая просит A.
в итоге в моих buildreq останется только B, если я правильно понял.
но зависимость B на C могла возникнтуь случайно по желанию левой ноги 
разработчика / майнтейнера / find-req. 
при очередной пересборке B она отваливается и мне нужно добавлять руками A в 
buildreq. так я и сам знал что она мне нужна, пока ее оптимизатор не сожрал!

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

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

* [devel] Re: lua-rpm-0.1 (squeeze.lua)
  2005-04-08 10:02   ` Nick S. Grechukh
@ 2005-04-08 10:06     ` Michael Shigorin
  2005-04-08 10:18       ` Nick S. Grechukh
  2005-04-08 15:32     ` Alexey Tourbin
  1 sibling, 1 reply; 12+ messages in thread
From: Michael Shigorin @ 2005-04-08 10:06 UTC (permalink / raw)
  To: devel

On Fri, Apr 08, 2005 at 01:02:32PM +0300, Nick S. Grechukh wrote:
> > > Ну так вот.  Алгоритм оптимизации зависимостей в BuildRequires.
> > Т.е. предлагается обнюхать, а потом задвигать в rpm-build? :)
> страшно. пример:

Это как раз понятно.  Вот как анализировать динамику таких
зависимостей по сизифу за год -- не совсем понятно, а это часть
правильного ответа...

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


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

* Re: [devel] Re: lua-rpm-0.1 (squeeze.lua)
  2005-04-08 10:06     ` Michael Shigorin
@ 2005-04-08 10:18       ` Nick S. Grechukh
  2005-04-08 15:21         ` Alexey Tourbin
  0 siblings, 1 reply; 12+ messages in thread
From: Nick S. Grechukh @ 2005-04-08 10:18 UTC (permalink / raw)
  To: devel

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

On Friday 08 April 2005 13:06, Michael Shigorin wrote:
> On Fri, Apr 08, 2005 at 01:02:32PM +0300, Nick S. Grechukh wrote:
> > > > Ну так вот.  Алгоритм оптимизации зависимостей в BuildRequires.
> > >
> > > Т.е. предлагается обнюхать, а потом задвигать в rpm-build? :)
> >
> > страшно. пример:
>
> Это как раз понятно.  Вот как анализировать динамику таких
> зависимостей по сизифу за год -- не совсем понятно, а это часть
> правильного ответа...

что даст такая оптимизация buildreqires ?

прикольно конечно, но все же.

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

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

* [devel] Re: lua-rpm-0.1 (squeeze.lua)
  2005-04-08 10:18       ` Nick S. Grechukh
@ 2005-04-08 15:21         ` Alexey Tourbin
  0 siblings, 0 replies; 12+ messages in thread
From: Alexey Tourbin @ 2005-04-08 15:21 UTC (permalink / raw)
  To: devel

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

On Fri, Apr 08, 2005 at 01:18:34PM +0300, Nick S. Grechukh wrote:
> > Это как раз понятно.  Вот как анализировать динамику таких
> > зависимостей по сизифу за год -- не совсем понятно, а это часть
> > правильного ответа...
> 
> что даст такая оптимизация buildreqires ?
> прикольно конечно, но все же.

Ничего. :)

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

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

* [devel] Re: lua-rpm-0.1 (squeeze.lua)
  2005-04-08 10:02   ` Nick S. Grechukh
  2005-04-08 10:06     ` Michael Shigorin
@ 2005-04-08 15:32     ` Alexey Tourbin
  2005-04-08 17:03       ` Nick S. Grechukh
  1 sibling, 1 reply; 12+ messages in thread
From: Alexey Tourbin @ 2005-04-08 15:32 UTC (permalink / raw)
  To: devel

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

On Fri, Apr 08, 2005 at 01:02:32PM +0300, Nick S. Grechukh wrote:
> мне для сборки требуется тулза A и тулз B.
> я пишу PreBuildReq: A B
> 
> тулза B требует библиотеку C которая просит A.
> в итоге в моих buildreq останется только B, если я правильно понял.

Да.  Остаются только "опорные точки", которые по зависимостям дают
вытягивание всего остального (а сами по себе ни к чему не сводятся).

Есть неочевидные случаи.  Например, пакеты rpm-build и rpm-build-perl
взаимно зависят друг от друга.  Оптимизатор оставляет rpm-build, т.к.
у него больше зависимостей, чем у rpm-build-perl.

(Я опять изобрел велосипед.  Здесь нужен какой-нибудь алгоритм на графах.
Но данный конкретные велосипед работает очень хорошо, гораздо лучше
предыдущих.)

> но зависимость B на C могла возникнтуь случайно по желанию левой ноги 
> разработчика / майнтейнера / find-req.

Пример случайных зависимостей?  Зависимости между пакетами не случайны. :)

> при очередной пересборке B она отваливается и мне нужно добавлять руками A в 
> buildreq. так я и сам знал что она мне нужна, пока ее оптимизатор не сожрал!

Нет, нужно ещё раз запустить алгоритм. :)

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

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

* [devel] Re: lua-rpm-0.1 (squeeze.lua)
  2005-04-08  7:12 ` [devel] " Michael Shigorin
  2005-04-08 10:02   ` Nick S. Grechukh
@ 2005-04-08 15:35   ` Alexey Tourbin
  1 sibling, 0 replies; 12+ messages in thread
From: Alexey Tourbin @ 2005-04-08 15:35 UTC (permalink / raw)
  To: devel

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

On Fri, Apr 08, 2005 at 10:12:47AM +0300, Michael Shigorin wrote:
> On Fri, Apr 08, 2005 at 06:34:25AM +0400, Alexey Tourbin wrote:
> > Ну так вот.  Алгоритм оптимизации зависимостей в BuildRequires.
> Т.е. предлагается обнюхать, а потом задвигать в rpm-build? :)

Нет, это прототип нового buildreq.  Разные прототипы-куски нового
buildreq уже долгое время разбросаны у меня по всему /home/at.  Иногда
этот кошмарный сон возвращается.  На этот раз в обличье Lua. :)

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

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

* Re: [devel] Re: lua-rpm-0.1 (squeeze.lua)
  2005-04-08 15:32     ` Alexey Tourbin
@ 2005-04-08 17:03       ` Nick S. Grechukh
  2005-04-08 17:08         ` Nick S. Grechukh
  2005-04-08 17:09         ` Alexey Tourbin
  0 siblings, 2 replies; 12+ messages in thread
From: Nick S. Grechukh @ 2005-04-08 17:03 UTC (permalink / raw)
  To: devel

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

On Friday 08 April 2005 18:32, Alexey Tourbin wrote:
> Нет, нужно ещё раз запустить алгоритм. :)
а, сорри. это mike@ меня сбил,  предложив в buildreq пихать :-)
в findreq, пожалуй в самый раз будет.

а нагрузка на apt при обсчете зависимостей станет меньше или больше?

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

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

* Re: [devel] Re: lua-rpm-0.1 (squeeze.lua)
  2005-04-08 17:03       ` Nick S. Grechukh
@ 2005-04-08 17:08         ` Nick S. Grechukh
  2005-04-10  9:18           ` Alexey Tourbin
  2005-04-08 17:09         ` Alexey Tourbin
  1 sibling, 1 reply; 12+ messages in thread
From: Nick S. Grechukh @ 2005-04-08 17:08 UTC (permalink / raw)
  To: ALT Devel discussion list

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

On Friday 08 April 2005 20:03, Nick S. Grechukh wrote:
> On Friday 08 April 2005 18:32, Alexey Tourbin wrote:
> > Нет, нужно ещё раз запустить алгоритм. :)
> а, сорри. это mike@ меня сбил,  предложив в buildreq пихать :-)
сорри второй раз. наверное уже домой пора :-)

> в findreq, пожалуй в самый раз будет.
но не в buildreq.

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

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

* [devel] Re: lua-rpm-0.1 (squeeze.lua)
  2005-04-08 17:03       ` Nick S. Grechukh
  2005-04-08 17:08         ` Nick S. Grechukh
@ 2005-04-08 17:09         ` Alexey Tourbin
  1 sibling, 0 replies; 12+ messages in thread
From: Alexey Tourbin @ 2005-04-08 17:09 UTC (permalink / raw)
  To: devel

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

On Fri, Apr 08, 2005 at 08:03:30PM +0300, Nick S. Grechukh wrote:
> On Friday 08 April 2005 18:32, Alexey Tourbin wrote:
> > Нет, нужно ещё раз запустить алгоритм. :)
> а, сорри. это mike@ меня сбил,  предложив в buildreq пихать :-)

Нет, это именно про buildreq.

> в findreq, пожалуй в самый раз будет.

С find-requires всё впорядке.  find-requires проставляет в основном
виртуальные зависимости.

> а нагрузка на apt при обсчете зависимостей станет меньше или больше?

apt вообще не задействован, обсчет ведется по локальной базе rpm.

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

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

* [devel] Re: lua-rpm-0.1 (squeeze.lua)
  2005-04-08 17:08         ` Nick S. Grechukh
@ 2005-04-10  9:18           ` Alexey Tourbin
  0 siblings, 0 replies; 12+ messages in thread
From: Alexey Tourbin @ 2005-04-10  9:18 UTC (permalink / raw)
  To: ALT Devel discussion list

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

On Fri, Apr 08, 2005 at 08:08:35PM +0300, Nick S. Grechukh wrote:
> > в findreq, пожалуй в самый раз будет.
> но не в buildreq.

Вот свежий пример (perl-DBD-Pg):

# Automatically added by buildreq on Fri Apr 08 2005
BuildRequires: libpq3-devel perl-DBI-devel perl-Encode perl-Pod-Escapes perl-Pod-Simple perl-Test-Pod perl-devel postgresql-devel

Оптимизатор вот что дает:

$ ./buildreq2 --squeeze libpq3-devel perl-DBI-devel perl-Encode perl-Pod-Escapes perl-Pod-Simple perl-Test-Pod perl-devel postgresql-devel
        Expanding...
libpq3-devel -> libpq3
perl-DBI-devel -> perl-DBI
perl-DBI-devel -> perl(Config.pm) -> perl-base
perl-Encode -> libc.so.6 -> glibc-core
postgresql-devel -> libecpg4-devel
postgresql-devel -> sh
glibc-core -> setup
libecpg4-devel -> libecpg4
libecpg4-devel -> libcrypto.so.4 -> libssl
libecpg4-devel -> libpam.so.0 -> libpam0
libecpg4-devel -> libreadline.so.4.3 -> libreadline
libecpg4-devel -> libz.so.1 -> zlib
libpam0 -> pam-common -> pam-config
libreadline -> libtinfo.so.5 -> libtinfo
libtinfo -> terminfo
BuildRequires: glibc-core libecpg4 libecpg4-devel libpam0 libpq3 libpq3-devel libreadline libssl libtinfo pam-config perl-DBI perl-DBI-devel perl-Encode perl-Pod-Escapes perl-Pod-Simple perl-Test-Pod perl-base perl-devel postgresql-devel setup sh terminfo zlib
        Squeezing...
setup < glibc-core
terminfo < libtinfo
libpq3-devel < postgresql-devel
perl-Pod-Escapes < perl(Pod/Escapes.pm) < perl-Pod-Simple
glibc-core < /sbin/post_ldconfig < zlib
pam-config < pam-common < libpam0
zlib < libz.so.1 < libecpg4-devel
sh < /bin/sh < pam-config
libreadline < libreadline.so.4.3 < libecpg4-devel
libtinfo < libtinfo.so.5 < libreadline
libssl < libcrypto.so.4 < libecpg4
libecpg4 < libecpg4-devel
libpam0 < libpam.so.0 < libecpg4-devel
perl-DBI < perl-DBI-devel
perl-Pod-Simple < perl(Pod/Simple.pm) < perl-Test-Pod
libecpg4-devel < postgresql-devel
libpq3 < libpq3-devel
perl-Encode < perl(Encode.pm) < perl-Pod-Simple
perl-base < perl(File/Spec.pm) < perl-Test-Pod
perl-devel < perl(Test/Builder.pm) < perl-Test-Pod
BuildRequires: perl-DBI-devel perl-Test-Pod postgresql-devel
$

То есть ужали всего до трёх пакетов.  Какая оптимизация здесь ошибочна?
(Пакеты, которые взаимно зависят друг от друга, друг друга не поглощают;
один из них обязательно остается.)  Мне конечно немного непривычно, что
в BR не будет perl-devel.  Но perl-Test-Pod его стопудово вытягивает.

PS: у вас будет Выбор.
PPS: Lua сосёт. :)

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

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

end of thread, other threads:[~2005-04-10  9:18 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-08  2:34 [devel] lua-rpm-0.1 (squeeze.lua) Alexey Tourbin
2005-04-08  7:12 ` [devel] " Michael Shigorin
2005-04-08 10:02   ` Nick S. Grechukh
2005-04-08 10:06     ` Michael Shigorin
2005-04-08 10:18       ` Nick S. Grechukh
2005-04-08 15:21         ` Alexey Tourbin
2005-04-08 15:32     ` Alexey Tourbin
2005-04-08 17:03       ` Nick S. Grechukh
2005-04-08 17:08         ` Nick S. Grechukh
2005-04-10  9:18           ` Alexey Tourbin
2005-04-08 17:09         ` Alexey Tourbin
2005-04-08 15:35   ` 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