Eeek ... but yes the right thing to do in order to get rid of find-provides/find-requires forevermore.
73 de jeff On Apr 10, 2011, at 6:50 AM, Per Øyvind Karlsen wrote: > RPM Package Manager, CVS Repository > http://rpm5.org/cvs/ > ____________________________________________________________________________ > > Server: rpm5.org Name: Per Øyvind Karlsen > Root: /v/rpm/cvs Email: pkarl...@rpm5.org > Module: rpm Date: 10-Apr-2011 12:50:14 > Branch: HEAD Handle: 2011041010501301 > > Added files: > rpm/macros kernel.in > rpm/scripts kmod-deps.sh > Modified files: > rpm CHANGES Makefile.am configure.ac > rpm/scripts Makefile.am > > Log: > rpmfc: add internel dep generator helper for kernel modules. > kmod-deps.sh: add dependency extractor from mandriva. > > Summary: > Revision Changes Path > 1.3608 +2 -0 rpm/CHANGES > 2.266 +3 -3 rpm/Makefile.am > 2.485 +4 -3 rpm/configure.ac > 1.1 +12 -0 rpm/macros/kernel.in > 1.78 +1 -1 rpm/scripts/Makefile.am > 1.1 +61 -0 rpm/scripts/kmod-deps.sh > ____________________________________________________________________________ > > patch -p0 <<'@@ .' > Index: rpm/CHANGES > ============================================================================ > $ cvs diff -u -r1.3607 -r1.3608 CHANGES > --- rpm/CHANGES 10 Apr 2011 05:23:25 -0000 1.3607 > +++ rpm/CHANGES 10 Apr 2011 10:50:13 -0000 1.3608 > @@ -1,4 +1,6 @@ > 5.4.0 -> 5.4.1: > + - proyvind: rpmfc: add internel dep generator helper for kernel modules. > + - provyind: kmod-deps.sh: add dependency extractor from mandriva. > - proyvind: rpmds: implement devel(libfoo) symlink dependencies from > Mandriva, but with proper ELF SONAME checking. > - jbj: mongo: stub-in a /usr/lib/rpm/bin mongo shell wrapper. > @@ . > patch -p0 <<'@@ .' > Index: rpm/Makefile.am > ============================================================================ > $ cvs diff -u -r2.265 -r2.266 Makefile.am > --- rpm/Makefile.am 1 Apr 2011 05:08:11 -0000 2.265 > +++ rpm/Makefile.am 10 Apr 2011 10:50:13 -0000 2.266 > @@ -112,9 +112,9 @@ > > pkgcfgdir = $(pkglibdir)/macros.d > pkgcfg_DATA = \ > - macros/cmake macros/gstreamer macros/java macros/libtool > macros/mandriva \ > - macros/mono macros/perl macros/pkgconfig macros/php macros/python > macros/ruby \ > - macros/selinux macros/tcl > + macros/cmake macros/gstreamer macros/java macros/kernel macros/libtool \ > + macros/mandriva macros/mono macros/perl macros/pkgconfig macros/php \ > + macros/python macros/ruby macros/selinux macros/tcl > > noinst_HEADERS = build.h debug.h system.h > > @@ . > patch -p0 <<'@@ .' > Index: rpm/configure.ac > ============================================================================ > $ cvs diff -u -r2.484 -r2.485 configure.ac > --- rpm/configure.ac 3 Apr 2011 19:22:00 -0000 2.484 > +++ rpm/configure.ac 10 Apr 2011 10:50:13 -0000 2.485 > @@ -521,6 +521,7 @@ > AC_PATH_PROG(__MAKE, make, %{_bindir}/make, $MYPATH) > AC_PATH_PROG(__MKDIR, mkdir, /bin/mkdir, $MYPATH) > AC_PATH_PROG(__MONGO, mongo, %{_bindir}/mongo, $MYPATH) > +AC_PATH_PROG(__MODINFO, modinfo, /sbin/modinfo, $MYPATH) > AC_PATH_PROG(__MV, mv, /bin/mv, $MYPATH) > AC_PATH_PROG(__PATCH, patch, %{_bindir}/patch, $MYPATH) > AC_PATH_PROG(__PAX, pax, %{_bindir}/pax, $MYPATH) > @@ -2307,9 +2308,9 @@ > scripts/Makefile > rpmdb/DB_CONFIG > macros/macros macros/macros.rpmbuild > - macros/cmake macros/gstreamer macros/java macros/libtool macros/mandriva > - macros/mono macros/perl macros/pkgconfig macros/php macros/python > macros/ruby > - macros/selinux macros/tcl > + macros/cmake macros/gstreamer macros/java macros/kernel macros/libtool > + macros/mandriva macros/mono macros/perl macros/pkgconfig macros/php > + macros/python macros/ruby macros/selinux macros/tcl > doc/Makefile > doc/manual/Makefile doc/fr/Makefile doc/ja/Makefile doc/ko/Makefile > doc/pl/Makefile doc/ru/Makefile doc/sk/Makefile > @@ . > patch -p0 <<'@@ .' > Index: rpm/macros/kernel.in > ============================================================================ > $ cvs diff -u -r0 -r1.1 kernel.in > --- /dev/null 2011-04-10 12:45:29.000000000 +0200 > +++ kernel.in 2011-04-10 12:50:13.231404616 +0200 > @@ -0,0 +1,12 @@ > +# Kernel specific macro definitions. > +# To make use of these macros insert the following line into your spec file: > +# %{load:%{_usrlibrpm}/macros.d/kernel} > + > +%__modinfo @__MODINFO > + > +# Path to scripts to autogenerate gstreamer package dependencies, > +# > +# Note: Used if _use_internal_dependency_generator is non-zero. The > +# helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}. > +%__kernel_provides %{_rpmhome}/kmod-deps.sh --provides --modinfo %__modinfo > +#%__kernel_requires %{_rpmhome}/kmod-deps.sh --requires --modinfo %__modinfo > @@ . > patch -p0 <<'@@ .' > Index: rpm/scripts/Makefile.am > ============================================================================ > $ cvs diff -u -r1.77 -r1.78 Makefile.am > --- rpm/scripts/Makefile.am 24 Feb 2011 03:11:09 -0000 1.77 > +++ rpm/scripts/Makefile.am 10 Apr 2011 10:50:14 -0000 1.78 > @@ -15,7 +15,7 @@ > deb_control deb_md5sums deb_postinst deb_postrm deb_preinst deb_prerm \ > executabledeps.sh \ > find-debuginfo.sh find-lang.sh find-prov.pl find-req.pl \ > - find-provides.ksyms find-requires.ksyms kmodtool \ > + find-provides.ksyms find-requires.ksyms kmod-deps.sh kmodtool \ > cpanflute cpanflute2 Specfile.pm \ > find-provides.perl find-requires.perl \ > find-provides.php find-requires.php \ > @@ . > patch -p0 <<'@@ .' > Index: rpm/scripts/kmod-deps.sh > ============================================================================ > $ cvs diff -u -r0 -r1.1 kmod-deps.sh > --- /dev/null 2011-04-10 12:45:29.000000000 +0200 > +++ kmod-deps.sh 2011-04-10 12:50:14.221447549 +0200 > @@ -0,0 +1,61 @@ > +#!/bin/sh > + > +# Kernel module dependency extractor. > +# > +# Author(s): Danny Tholen <obi...@mandriva.org> > +# Olivier Blin <bl...@mandriva.org> > +# Per Øyvind Karlsen <peroyv...@mandriva.org> > +# > + > +provides=0 > +requires=0 > +modinfo=/sbin/modinfo > + > +while [ "$#" -ne 0 ]; do > + case $1 in > + -P|--provides) > + provides=1 > + ;; > + -R|--requires) > + requires=1 > + ;; > + --modinfo) > + shift > + modinfo=$1 > + ;; > + esac > + shift > +done > + > +if [ $requires -eq 1 ]; then > + echo "--requires not implemented!" 1>&2 > + exit 1 > +fi > + > +if [ $provides -eq 1 ]; then > + provideslist=`sed "s/['\"]/\\\&/g"` > + modulelist=$(echo "$provideslist" | egrep > '^.*(/lib/modules/|/var/lib/dkms/).*\.ko(\.gz)?$') > + echo $modulelist | xargs -r $modinfo | \ > + perl -lne ' > + $name = $1 if m!^filename:\s*(?:.*/)?([^/]+)\.k?o!; > + $ver = $1 if > /^version:\s*[a-zA-Z]{0,6}\-?(\d+[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*-?[a-zA-Z]{0,6}\d?).*/; > + $ver =~ s/(\:|-)/_/; > + if (/^vermagic:/) { > + print "kmod\($name\)" . ($ver ? " = $ver" : "") if $name; > + undef $name; undef $ver; > + } > + ' > + dkmslist=$(echo "$provideslist" | egrep > '(/var/lib/dkms-binary/[^/]+/[^/]+|/usr/src)/[^/]+/dkms.conf$') > + [ -n "$dkmslist" ] && for d in $dkmslist; do > + VERSION=`sed -rne 's/^PACKAGE_VERSION="?([^"]+)"?$/\1/;T;p' $d` > + [ -z "$VERSION" ] && continue > + PACKAGE_NAME=`sed -rne 's/^PACKAGE_NAME="?([^"]+)"?$/\1/;T;p' $d` > + MODULES=`sed -rne 's/^DEST_MODULE_NAME\[[0-9]+\]="?([^"]+)"?$/\1/;T;p' > $d` > + [ -z "$MODULES" ] && MODULES=`sed -rne > 's/^BUILT_MODULE_NAME\[[0-9]+\]="?([^"]+)"?$/\1/;T;p' $d` > + # default on PACKAGE_NAME if no BUILT_MODULE_NAME is specified > + [ -z "$MODULES" ] && MODULES=$PACKAGE_NAME > + echo "$MODULES" | sed -re "s/\\\$PACKAGE_NAME/$PACKAGE_NAME/" | while > read m; do > + echo "kmod($m) = $VERSION" > + done > + done > +fi > @@ . > ______________________________________________________________________ > RPM Package Manager http://rpm5.org > CVS Sources Repository rpm-...@rpm5.org
smime.p7s
Description: S/MIME cryptographic signature