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

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to