home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- # This script is not finished. It is a bunch of ideas for using the
- # OS package manager to create a spec file of virtual dependencies for
- # each OS package. I wish to only use tools which are installed in
- # the OS by default.
-
-
- PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/ucb:/usr/bsd
- export PATH
-
- IGNORE_DIRS='@'
-
- date=`date`
- hostname=`uname -n`
- osname=`uname -s`
-
- # programs we run
-
- find_provides=/usr/lib/rpm/find-provides
- find_requires=/usr/lib/rpm/find-requires
- #find_provides=/devel/kestes/vendorc/tools/solaris.prov
- #find_requires=/devel/kestes/vendorc/tools/solaris.req
- u_pkg=/devel/kestes/vendorc/rpm/scripts/u-pkg.sh
-
- # where we write output
- spec_filedir=/tmp
- provides_tmp=/tmp/provides.$$
- requires_tmp=/tmp/requires.$$
-
-
- for pkg in `$u_pkg list_all_packages`
- do
-
- # find OS pkg information
-
- spec_filename=$spec_filedir/$pkg
-
- veryify_cmd=`$u_pkg print_cmd package_version $pkg | sed -e "s/\\$1/$pkg/" `
-
- pkg_version=`$u_pkg package_version $pkg `
-
-
- # find all the dependencies
-
- $u_pkg list_all_files_in_package $pkg | egrep -v \'$IGNORE_DIRS\' | \
- $find_provides | sed -e 's/^/Provides: /' > $provides_tmp
-
- $u_pkg list_all_files_in_package $pkg | egrep -v \'$IGNORE_DIRS\' | \
- $find_requires | sed -e 's/^/Requires: /' > $requires_tmp
-
- # create the spec file
-
- rm -f $spec_filename
-
- echo >> $spec_filename
-
- cat $provides_tmp | sort -u >> $spec_filename
-
- echo >> $spec_filename
-
- cat $requires_tmp | sort -u >> $spec_filename
-
- echo >> $spec_filename
-
-
- # Output the rest of the spec file. It is a template stored in this
- # here file.
-
-
- cat >> $spec_filename <<_EIEIO_
- Name: vpkg-$pkg
- Version: $pkg_version
-
- %description
- This is a virtual RPM package. It contains no actual files. It uses the
- \`Provides' token from RPM 3.x and later to list many of the shared libraries
- and interpreters that are part of the base operating system and associated
- subsets for $osname.
-
- This virtual package was constructed based on the vendor/system software
- installed on the $osname machine named $hostname, as of the date
- $date. It is intended to supply dependency
- information about the OS package: $pkg, version: $pkg_version,
-
-
- %prep
- # nothing to do
-
- %build
- # nothing to do
-
- %install
- # nothing to do
-
- %clean
- # nothing to do
-
-
- %verifyscript
-
- PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/ucb:/usr/bsd:/usr/local/bin
- export PATH
-
- expected_version='$pkg_version'
- current_version=\`$veryify_cmd\`
-
- if [ \$expected_version -ne \$current_version ]; then
- echo "RPM virtual package does not match OS pkg: $pkg" >&2
- echo "installed packge version: \$current_verion" >&2
- echo "expected package version: \$expected_version" >&2
- exit 9
- fi
-
- %files
-
- _EIEIO_
-
- done
-
-