On Mon, Feb 12, 2007 at 01:08:36AM +0300, Dmitry V. Levin wrote: > Update of /people/ldv/packages/rpm.git > > Changes statistics since `4.0.4-alt72-g6a53902' follows: > autodeps/linux.prov.in | 2 ++ > autodeps/linux.req.in | 29 +++++++++++++++++++++++++++++ > platform.in | 4 ++-- > 3 files changed, 33 insertions(+), 2 deletions(-) > > Changelog since `4.0.4-alt72-g6a53902' follows: > commit 7227d450caf39c13da3596bd17b60dc4d20c575a > Merge: 6a53902827037e9f38fbbdbc2509996fc12b52b5 280e69d9a539cf066a3a072e9c8fda6e97a420f1 > Author: Dmitry V. Levin > Date: Sun Feb 11 22:02:54 2007 +0000 > > Merge branch 'master' of git.alt:/people/damir/packages/rpm > > commit 280e69d9a539cf066a3a072e9c8fda6e97a420f1 > Author: Damir Shayhutdinov > Date: Sat Feb 10 19:16:04 2007 +0300 > > Added hooks for Java autoreq facility. > > Signed-off-by: Damir Shayhutdinov > > Full diff since `4.0.4-alt72-g6a53902' follows: > diff --git a/autodeps/linux.prov.in b/autodeps/linux.prov.in > index cd59580..fc9fb8f 100755 > --- a/autodeps/linux.prov.in > +++ b/autodeps/linux.prov.in > @@ -52,6 +52,8 @@ ParseMethod() > FIND_SHELL= > FIND_TCL= > ;; > + java|nojava) > + ;; > lib) > FIND_LIBS=1 > ;; > diff --git a/autodeps/linux.req.in b/autodeps/linux.req.in > index f1980e2..80dfa45 100755 > --- a/autodeps/linux.req.in > +++ b/autodeps/linux.req.in > @@ -36,6 +36,7 @@ exit_handler() > trap exit_handler EXIT > > FIND_FILES= > +FIND_JAVA= > FIND_LIBPERL= > FIND_LIBS= > FIND_MONO= > @@ -54,6 +55,7 @@ ParseMethod() > case "${t/%,}" in > no|none|off|false) > FIND_FILES= > + FIND_JAVA= > FIND_LIBPERL= > FIND_LIBS= > FIND_MONO= > @@ -64,6 +66,12 @@ ParseMethod() > FIND_SHELL= > FIND_TCL= > ;; > + java) > + FIND_JAVA=1 > + ;; > + nojava) > + FIND_JAVA= > + ;; > lib|library) > FIND_LIBS=1 > ;; > @@ -131,6 +139,7 @@ ParseMethod() > FIND_LIBPERL=1 > FIND_LIBS=1 > FIND_MONO=1 > + FIND_JAVA=1 > FIND_PAM=1 > FIND_PERL=1 > FIND_PKGCONFIG=1 > @@ -159,6 +168,7 @@ if [ -n "$FIND_PAM" -o \ > fi > > if [ -z "$FIND_FILES" -a \ > + -z "$FIND_JAVA" -a \ > -z "$FIND_LIBPERL" -a \ > -z "$FIND_LIBS" -a \ > -z "$FIND_MONO" -a \ > @@ -187,11 +197,23 @@ case "$LD_PRELOAD" in > esac > > FOUND_REQS= > +LIST_JAVA= > LIST_MONO= > LIST_PERL= > LIST_PYTHON= > LIST_TCL= > > +FindJavaReqs() > +{ > + [ -n "$FIND_JAVA" -a -n "$LIST_JAVA" -a -x "@RPMCONFIGDIR@/java.req" ] || return 0 > + > + local r > + r="$(printf %s\\n "$LIST_JAVA" | > + @RPMCONFIGDIR@/java.req "$RPM_BUILD_DIR" "$RPM_BUILD_ROOT" "$RPM_LIBDIR")" || return 1 А какой смысл передавать дополнительные параметры скрипту, если, во-первых, эти параметры по-прежнему доступны через environment; а во-вторых, PRM_BUILD_DIR раскрывается совсем не в то, во что хочется, а в `rpm --eval %_builddir`, который одинаковый для всех пакетов? По-моему, параметры лучше зарезервировать для того, чтобы брать файлы из командной строки, а если командная строка пустая, тогда читать список файлов из stdin. Кстати, второе обстоятельство довольно тягостно: чтобы получить информацию из сборочного каталога на стадии find-requires, приходится копировать ее в %buildroot на стадии %install. Может кто-то припоминает левые файлы в %buildroot с названием /.perl.req. > + [ -z "$FOUND_REQS" ] && FOUND_REQS="$r" || FOUND_REQS="$FOUND_REQS > +$r" > +} > + > FindMonoReqs() > { > [ -n "$FIND_MONO" -a -n "$LIST_MONO" -a -x "@RPMCONFIGDIR@/mono.req" ] || return 0 > @@ -425,9 +447,16 @@ $f" > elif [ -z "${t##*MS Windows PE*}" ]; then > [ -z "$LIST_MONO" ] && LIST_MONO="$f" || LIST_MONO="$LIST_MONO > $f" > + elif [ -z "${t##*Zip archive data*}" -a -z "${f##*.jar}" ] || > + [ -z "${t##*compiled Java class data*}" ]; then > + [ -z "$LIST_JAVA" ] && LIST_JAVA="$f" || LIST_JAVA="$LIST_JAVA > +$f" > fi > done > > +# Find requires in listed Java files, if any > +FindJavaReqs > + > # Find requires in listed .Net files, if any > FindMonoReqs > > diff --git a/platform.in b/platform.in > index 19c778e..3bce5dd 100644 > --- a/platform.in > +++ b/platform.in > @@ -454,8 +454,8 @@ > @alt@%_tcl_req_skip "" > @alt@%_fixup_method binconfig pkgconfig libtool > @alt@%_strip_method %{?_enable_debug:none}%{!?_enable_debug:executable shared} > -@alt@%_findreq_default_method files lib mono pam perl pkgconfig python shell tcl > -@alt@%_findprov_default_method lib mono pam perl pkgconfig python shell tcl > +@alt@%_findreq_default_method files java lib mono pam perl pkgconfig python shell tcl > +@alt@%_findprov_default_method java lib mono pam perl pkgconfig python shell tcl > @alt@ > @alt@%_cleanup_topdir %nil > @alt@%_compress_topdir %_usr