#!/bin/bash ###################################################################### SPRM_dir=~/.updates/rawhide-SRPMS SPRM_dir=~/downloads/.updates/rawhide\' SPRM_dir=~/incoming SPRM_dir=. package=sendmail version=8.11.6 release=15 release=23.73 release=25.73 SRPM_file=$package-$version-$release.src.rpm SPEC_file=$package.spec SRC_file=$package.$version.tar.gz SRC_dir=$package-$version release_suffix=".corvax" patch_MAXMACROID_name=MAXMACROID patch_MAXMACROID_full_name=$package-$version-$patch_MAXMACROID_name.patch patch_milter_name=milter patch_milter_full_name=$package-$version-$patch_milter_name.patch tmp_dir=/tmp/sendmail SPEC_dir=/usr/src/redhat/SPECS SOURCES_dir=/usr/src/redhat/SOURCES ###################################################################### add_patch() { patch_name=$1 perl -pi -e "(\$last_patch) = /^Patch(\d+):/ if (/^Patch\d+:/); if (/^Buildroot:/) {\$last_patch++;print(\"Patch\$last_patch: $patch_name\n\");} print(\"\%patch\$last_patch -p1\n\n\") if (/^\%build\$/);" $SPEC_dir/$SPEC_file } cur_dir=`pwd` rpm -i $SPRM_dir/$SRPM_file if [ -d $tmp_dir ]; then rm -rf $tmp_dir/* else mkdir $tmp_dir fi cd $tmp_dir #errata=`perl -n -e "if(/\%define\s+errata\s+(\d+)/){print(\\$1)}" $SPEC_dir/$SPEC_file` # #if [ "$errata" == "100" ]; then perl -pi -e "s/(\%define release.+)([\r\n]*)\$/\$1$release_suffix\$2/" $SPEC_dir/$SPEC_file #else # perl -pi -e "s/(\%define errata.+)([\r\n]*)\$/\$1$release_suffix\$2/" $SPEC_dir/$SPEC_file #fi tar -xzf $SOURCES_dir/$SRC_file ##### cat >$SRC_dir/devtools/Site/site.config.m4 < $SOURCES_dir/$patch_milter_full_name add_patch $patch_milter_full_name ##### tar -xzf $SOURCES_dir/$SRC_file NEW_BITMAPBITS="512" perl -pi -e "\$NEW_BITMAPBITS=\"$NEW_BITMAPBITS\";s/^(\#define BITMAPBITS\s+)\d+(.*)/\$1\$NEW_BITMAPBITS\$2/" $SRC_dir/include/sendmail/sendmail.h NEW_MAXMACROID="0777" perl -pi -e "\$NEW_MAXMACROID=\"$NEW_MAXMACROID\";s/^(\#define MAXMACROID\s+)\d+(.*)/\$1\$NEW_MAXMACROID\$2/" $SRC_dir/sendmail/conf.h mv $SRC_dir $SRC_dir-$patch_MAXMACROID_name tar -xzf $SOURCES_dir/$SRC_file diff -u -r -N $SRC_dir $SRC_dir-$patch_MAXMACROID_name > $SOURCES_dir/$patch_MAXMACROID_full_name add_patch $patch_MAXMACROID_full_name ##### cd $cur_dir rpm -ba $SPEC_dir/$SPEC_file rm -rf $tmp_dir