#!/bin/sh # # Rpm To Spec, ver 0.0.1 # Automatic spec reconstructor # # May 2004, Aleksey Barabanov # # PKG=$1 NULL=/dev/null echo "# autospec for $PKG" echo "# build at `date`" rpm -qip $PKG | grep '^Name' | awk 'BEGIN{FS="Relo"}{print $1}' | awk 'BEGIN{FS=": "}{print("Name:",$2)}' rpm -qip $PKG | grep '^Size' | awk 'BEGIN{FS="nse: "}{print("License:",$2)}' rpm -qip $PKG | grep '^Group' | awk 'BEGIN{FS="Source"}{print $1}' | awk 'BEGIN{FS=": "}{print("Group:",$2)}' if rpm --provides -qp $PKG >$NULL ; then echo -n "Provides:" rpm --provides -qp $PKG | while read i ; do echo -n " $i" done echo fi rpm -qip $PKG | grep '^Summary' | awk 'BEGIN{FS=": "}{print("Summary:",$2)}' rpm -qip $PKG | grep '^Version' | awk 'BEGIN{FS="Vendor"}{print $1}' | awk 'BEGIN{FS=": "}{print("Version:",$2)}' rpm -qip $PKG | grep '^Release' | awk 'BEGIN{FS="Build"}{print $1}' | awk 'BEGIN{FS=": "}{print("Release:",$2)}' if rpm --requires -qp $PKG >$NULL ; then echo -n "Requires:" rpm --requires -qp $PKG | while read i ; do echo -n " $i" done echo fi rpm -qip $PKG | grep '^Packager' | awk 'BEGIN{FS=": "}{print("Packager:",$2)}' rpm -qip $PKG | grep '^Version' | awk 'BEGIN{FS="Vendo"}{print $2}' | awk 'BEGIN{FS=": "}{print("Vendor:",$2)}' rpm -qip $PKG | grep '^Distribution' | awk 'BEGIN{FS=": "}{print("Distribution:",$2)}' rpm -qip $PKG | grep '^Group' | awk 'BEGIN{FS="RPM: "}{print("Source:",$2)}' echo echo "%description" rpm -qip $PKG | sed -n '/^Descript/,/^Distrib/ p' | grep -v "^\(Descript\|Distrib\)" echo echo echo "%prep" echo echo "%build" echo echo "%install" echo echo "%clean" echo S=`rpm --scripts -qp $PKG | grep "[[:space:]]scriptlet[[:space:]]" | awk 'BEGIN{FS="install"}{print $1}'` j="" for i in $S ; do if [ "$j" == "" ] ; then j=$i else echo echo "%$j" eval "rpm --scripts -qp $PKG | sed -ne '/^${j}install/,/^${i}install/ p'" | grep -ve "^\($j\|$i\)install" echo fi done echo echo "%$i" eval "rpm --scripts -qp $PKG | sed -ne '/^${i}install/,\$ p'" | grep -ve "^${i}install" echo echo echo "%files" AU="" AG="" rpm --dump -qp $PKG | while read f i1 i2 md5 i3 u g i4 i5 i6 i7 ; do if [ "$AU" != "$u" ] || [ "$AG" != "$g" ] ; then AU=$u ; AG=$g ; echo "%defattr(-,$AU,$AG)" fi echo $f done echo echo "%changelog" rpm --changelog -qp $PKG | while read i ; do [ "$i" != "" ] && { echo -e "$i" | grep -v "^[\*\-]" >$NULL && i=" $i" echo "$i" } done echo #rpm --configfiles -qp $PKG #rpm --docfiles -qp $PKG exit # ################################################# # #################################################