Restore README.txt, scripts.

(cherry picked from commit 11487c5358)
This commit is contained in:
Roland McGrath 2010-07-29 19:24:43 -07:00 committed by Chuck Ebbert
commit 13cbc19d00
26 changed files with 986 additions and 0 deletions

71
scripts/bumpspecfile.py Executable file
View file

@ -0,0 +1,71 @@
#!/usr/bin/python
#
# Needs $GIT_COMMITTER_NAME and $GIT_COMMITTER_EMAIL set.
#
import re
import sys
import time
import os
import string
class Specfile:
def __init__(self,filename):
file=open(filename,"r")
self.lines=file.readlines()
self.vr=""
def getNextVR(self,aspec):
# Get VR for changelog entry.
(ver,rel) = os.popen("LC_ALL=C rpm --specfile -q --qf '%%{version} %%{release}\n' --define 'dist %%{nil}' %s | head -1" % aspec).read().strip().split(' ')
pos = 0
# general released kernel case, bump 1st field
fedora_build = rel.split('.')[pos]
if fedora_build == "0":
# this is a devel kernel, bump 2nd field
pos = 1
elif rel.split('.')[-1] != fedora_build:
# this is a branch, must bump 3rd field
pos = 2
fedora_build = rel.split('.')[pos]
if pos == 1 and len(rel.split('.')) > 4:
# uh... what? devel kernel in a branch? private build? just do no VR in clog...
print "Warning: not adding any VR to changelog, couldn't tell for sure which field to bump"
pos = -1
next_fedora_build = int(fedora_build) + 1
if pos == 0:
nextrel = str(next_fedora_build)
elif pos == 1:
nextrel = "0." + str(next_fedora_build)
elif pos == 2:
nextrel = rel.split('.')[0] + "." + rel.split('.')[1] + "." + str(next_fedora_build)
if pos >= 0:
for s in rel.split('.')[pos + 1:]:
nextrel = nextrel + "." + s
self.vr = " "+ver+'-'+nextrel
def addChangelogEntry(self,entry):
user = os.environ.get("GIT_COMMITTER_NAME","unknown")
email = os.environ.get("GIT_COMMITTER_EMAIL","unknown")
if (email == "unknown"):
email = os.environ.get("USER","unknown")+"@fedoraproject.org"
changematch=re.compile(r"^%changelog")
date=time.strftime("%a %b %d %Y", time.localtime(time.time()))
newchangelogentry="%changelog\n* "+date+" "+user+" <"+email+">"+self.vr+"\n"+entry+"\n\n"
for i in range(len(self.lines)):
if(changematch.match(self.lines[i])):
self.lines[i]=newchangelogentry
break
def writeFile(self,filename):
file=open(filename,"w")
file.writelines(self.lines)
file.close()
if __name__=="__main__":
aspec=(sys.argv[1])
s=Specfile(aspec)
entry=(sys.argv[2])
s.getNextVR(aspec)
s.addChangelogEntry(entry)
s.writeFile(aspec)

27
scripts/check-TODO.sh Executable file
View file

@ -0,0 +1,27 @@
#!/bin/sh
for i in `grep ^* TODO | awk '{ print $2 }'`
do
if [ ! -f $i ]; then
echo "$i referenced in the TODO, but isn't in CVS!"
fi;
done
# sometimes dead stuff lingers in cvs, even though it's not in the specfile.
for i in *.patch
do
for j in $(grep $i kernel.spec | grep Apply.*Patch | awk '{ print $2 }' | wc -l)
do
if [ "$j" = "0" ]; then
echo $i is in CVS, but not applied in spec file.
grep $i TODO | awk '{ print $2 " is also still in the TODO" }'
fi
done
done
#for i in `grep ApplyPatch kernel.spec | awk '{ print $2 }'`
#do
# R=$(grep $i TODO)
# echo "$i is in CVS, but not mentioned in the TODO!"
#done

34
scripts/combine.sh Executable file
View file

@ -0,0 +1,34 @@
#! /bin/sh
# combine a set of quilt patches
# $1 : base dir (source tree)
# $2 : quilt dir (patches to apply)
# $3 : pre-patch to apply first (optional)
# e.g.:
# combine.sh /home/user/fedora/trunk/kernel/F-11/kernel-2.6.30/vanilla-2.6.30 \
# /home/user/git/stable-queue/queue-2.6.30 \
# /home/user/fedora/trunk/kernel/F-11/patch-2.6.30.5.bz2
if [ $# -lt 2 ] ; then
exit 1
fi
TD="combine_temp.d"
cd $1 || exit 1
cd ..
[ -d $TD ] && rm -Rf $TD
mkdir $TD || exit 1
cd $TD
cp -al ../$(basename $1) work.d
cd work.d
[ "$3" ] && bzcat $3 | patch -p1 -s
ln -s $2 patches
[ -h patches ] || exit 1
quilt snapshot
quilt upgrade
quilt push -a -q
quilt diff --snapshot >../combined.patch

82
scripts/configcommon.pl Normal file
View file

@ -0,0 +1,82 @@
#! /usr/bin/perl
my @args=@ARGV;
my @configoptions;
my @configvalues;
my @common;
my $configcounter = 0;
# first, read the 1st file
open (FILE,"$args[0]") || die "Could not open $args[0]";
while (<FILE>) {
my $str = $_;
if (/\# ([\w]+) is not set/) {
$configoptions[$configcounter] = $1;
$configvalues[$configcounter] = $str;
$common[$configcounter] = 1;
$configcounter ++;
} else {
if (/([\w]+)=/) {
$configoptions[$configcounter] = $1;
$configvalues[$configcounter] = $str;
$common[$configcounter] = 1;
$configcounter ++;
} else {
$configoptions[$configcounter] = "foobarbar";
$configvalues[$configcounter] = $str;
$common[$configcounter] = 1;
$configcounter ++;
}
}
};
# now, read all configfiles and see of the options match the initial one.
# if not, mark it not common
my $cntr=1;
while ($cntr < @ARGV) {
open (FILE,$args[$cntr]) || die "Could not open $args[$cntr]";
while (<FILE>) {
my $nooutput;
my $counter;
my $configname;
if (/\# ([\w]+) is not set/) {
$configname = $1;
} else {
if (/([\w]+)=/) {
$configname = $1;
}
}
$counter = 0;
$nooutput = 0;
while ($counter < $configcounter) {
if ("$configname" eq "$configoptions[$counter]") {
if ("$_" eq "$configvalues[$counter]") {
1;
} else {
$common[$counter] = 0;
}
}
$counter++;
}
}
$cntr++;
}
# now print the common values
my $counter = 0;
while ($counter < $configcounter) {
if ($common[$counter]!=0) {
print "$configvalues[$counter]";
}
$counter++;
}
1;

76
scripts/configdiff.pl Normal file
View file

@ -0,0 +1,76 @@
#! /usr/bin/perl
my @args=@ARGV;
my @configoptions;
my @configvalues;
my @alreadyprinted;
my $configcounter = 0;
# first, read the override file
open (FILE,"$args[0]") || die "Could not open $args[0]";
while (<FILE>) {
my $str = $_;
if (/\# ([\w]+) is not set/) {
$configoptions[$configcounter] = $1;
$configvalues[$configcounter] = $str;
$alreadprinted[$configcounter] = 0;
$configcounter ++;
} else {
if (/([\w]+)=/) {
$configoptions[$configcounter] = $1;
$configvalues[$configcounter] = $str;
$alreadprinted[$configcounter] = 0;
$configcounter ++;
} else {
$configoptions[$configcounter] = "$_";
$configvalues[$configcounter] = $str;
$alreadprinted[$configcounter] = 0;
$configcounter ++;
}
}
};
# now, read and output the entire configfile, except for the overridden
# parts... for those the new value is printed.
# O(N^2) algorithm so if this is slow I need to look at it later
open (FILE2,"$args[1]") || die "Could not open $args[1]";
while (<FILE2>) {
my $nooutput;
my $counter;
my $configname="$_";
my $match;
if (/\# ([\w]+) is not set/) {
$configname = $1;
} else {
if (/([\w]+)=/) {
$configname = $1;
}
}
$counter = 0;
$nooutput = 0;
$match = 0;
# print "C : $configname";
while ($counter < $configcounter) {
if ("$configname" eq "$configoptions[$counter]") {
if ( ("$_" eq "$configvalues[$counter]") || ("$configname" eq "") ) {
$match = 1;
} else {
$alreadyprinted[$configcounter] = 1;
print "$_";
$match = 1;
}
}
$counter++;
}
if ($match == 0) {
print "$_";
}
}
1;

3
scripts/cross-amd64.sh Normal file
View file

@ -0,0 +1,3 @@
export PATH=$PATH:/opt/cross/bin
make CROSS_COMPILE=x86_64-linux- ARCH=x86_64 hammer

3
scripts/cross-i586.sh Normal file
View file

@ -0,0 +1,3 @@
export PATH=$PATH:/opt/cross/bin
make ARCH=i386 i586

3
scripts/cross-i686.sh Normal file
View file

@ -0,0 +1,3 @@
export PATH=$PATH:/opt/cross/bin
make ARCH=i386 i686

2
scripts/cross-ia64.sh Normal file
View file

@ -0,0 +1,2 @@
export PATH=$PATH:/opt/cross/bin
make CROSS_COMPILE=ia64-linux- ARCH=ia64 ia64

3
scripts/cross-iseries.sh Normal file
View file

@ -0,0 +1,3 @@
export PATH=$PATH:/opt/cross/bin
make CROSS_COMPILE=ppc64-linux- ARCH=ppc64 ppc64iseries

3
scripts/cross-ppc.sh Normal file
View file

@ -0,0 +1,3 @@
export PATH=$PATH:/opt/cross/bin
make CROSS_COMPILE=ppc-linux- ARCH=ppc ppc

3
scripts/cross-ppc64.sh Normal file
View file

@ -0,0 +1,3 @@
export PATH=$PATH:/opt/cross/bin
make CROSS_COMPILE=ppc64-linux- ARCH=ppc64 ppc64

3
scripts/cross-ppc8260.sh Normal file
View file

@ -0,0 +1,3 @@
export PATH=$PATH:/opt/cross/bin
make CROSS_COMPILE=ppc-linux- ARCH=ppc ppc8260

3
scripts/cross-ppc8560.sh Normal file
View file

@ -0,0 +1,3 @@
export PATH=$PATH:/opt/cross/bin
make CROSS_COMPILE=ppc-linux- ARCH=ppc ppc8560

3
scripts/cross-pseries.sh Normal file
View file

@ -0,0 +1,3 @@
export PATH=$PATH:/opt/cross/bin
make CROSS_COMPILE=ppc64-linux- ARCH=ppc64 pseries64

2
scripts/cross-s390.sh Normal file
View file

@ -0,0 +1,2 @@
export PATH=$PATH:/opt/cross/bin
make CROSS_COMPILE=s390-linux- ARCH=s390 s390

2
scripts/cross-s390x.sh Normal file
View file

@ -0,0 +1,2 @@
export PATH=$PATH:/opt/cross/bin
make CROSS_COMPILE=s390x-linux- ARCH=s390 s390x

35
scripts/get-snapshot.sh Executable file
View file

@ -0,0 +1,35 @@
#!/bin/bash
VER=$(tail -n1 upstream | sed s/bz2/id/)
rm -f $VER
wget -c http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/$VER
SHA1=$(cat $VER)
rm -f patch-2.6.*-git*.id
cd ~/src/git-trees/kernel/linux-2.6
git pull
DIF=$(git diff $SHA1.. | wc -l)
if [ "$DIF" = "0" ]; then
echo Nothing changed.
exit
fi
TOT=$(git log | head -n1)
git diff $SHA1.. > ~/src/fedora/kernel/devel/git-linus-new.diff
cd ~/src/fedora/kernel/devel/
DIF=$(cmp git-linus.diff git-linus-new.diff)
if [ "$?" = "0" ]; then
echo Nothing new in git
rm -f git-linus-new.diff
exit
fi
mv git-linus-new.diff git-linus.diff
perl -p -i -e 's|^#ApplyPatch\ git-linus.diff|ApplyPatch\ git-linus.diff|' kernel.spec
echo "- Merge Linux-2.6 up to" $TOT > ~/src/fedora/kernel/devel/clog.tmp
cd ~/src/fedora/kernel/devel/
bumpspecfile.py kernel.spec "$(cat clog.tmp)"
rm -f clog.tmp
make clog

16
scripts/grab-logs.sh Executable file
View file

@ -0,0 +1,16 @@
#!/bin/sh
VER=$(make verrel)
ver=$(echo $VER | sed -e 's/-/ /g' | awk '{print $2}')
rev=$(echo $VER | sed -e 's/-/ /g' | awk '{print $3}')
if [ -d logs ]; then
DIR=logs/
else
DIR=./
fi
wget -O $DIR/build-$VER-i686.log http://kojipkgs.fedoraproject.org/packages/kernel/$ver/$rev/data/logs/i686/build.log
wget -O $DIR/build-$VER-x86-64.log http://kojipkgs.fedoraproject.org/packages/kernel/$ver/$rev/data/logs/x86_64/build.log
wget -O $DIR/build-$VER-noarch.log http://kojipkgs.fedoraproject.org/packages/kernel/$ver/$rev/data/logs/noarch/build.log

21
scripts/newpatch.sh Executable file
View file

@ -0,0 +1,21 @@
#!/bin/sh
# Easy application of new patches.
# Always adds to the very end. (Bumps last patch nr by 100)
# Parameters:
# $1 - patch filename
# $2 - description
OLD=$(grep ^Patch kernel.spec | tail -n1 | awk '{ print $1 }' | sed s/Patch// | sed s/://)
NEW=$(($OLD/100*100+100))
sed -i "/^Patch$OLD:\ /a#\ $2\nPatch$NEW:\ $1" kernel.spec
LAST=$(grep ^ApplyPatch kernel.spec | tail -n1 | awk '{ print $2 }')
sed -i "/^ApplyPatch $LAST/aApplyPatch $1" kernel.spec
cvs add $1
scripts/bumpspecfile.py kernel.spec "- $2"
make clog

13
scripts/pull-upstreams.sh Executable file
View file

@ -0,0 +1,13 @@
#!/bin/bash
utrace_base=2.6-current
utrace_base=2.6.34
url=http://people.redhat.com/roland/utrace/${1:-$utrace_base}
wget -q -O /dev/stdout $url/series | grep 'patch$' |
while read i
do
rm -f linux-2.6-$i
wget -nv -O linux-2.6-$i $url/$i
done

199
scripts/rebase.sh Executable file
View file

@ -0,0 +1,199 @@
#!/bin/bash
if [ ! -f /usr/bin/curl ]; then
echo yum install curl
exit 0
fi
# Current kernel bits
if [ `grep -c ^patch upstream` -ge 1 ]; then
export OLD=`grep ^patch upstream | tail -n1 | sed s/patch-// | sed s/\.bz2//`
else
export OLD=`grep linux-2.6 upstream | tail -n1 | sed s/linux-// | sed s/\.tar\.bz2//`
fi
export OLDBASE=`echo $OLD | sed s/-/\ /g | sed s/2\.6\.// | awk '{ print $1 }'`
if [ `echo $OLD | grep -c rc` -ge 1 ]; then
export OLDRC=`echo $OLD | sed s/-/\ /g | sed s/rc// | awk '{ print $2 }'`
if [ `echo $OLD | grep -c git` -ge 1 ]; then
export OLDGIT=`echo $OLD | sed s/-/\ /g | sed s/git// | awk '{ print $3 }'`
else
export OLDGIT=0
fi
else
export OLDRC=0
if [ `echo $OLD | grep -c git` -ge 1 ]; then
export OLDGIT=`echo $OLD | sed s/-/\ /g | sed s/git// | awk '{ print $2 }'`
else
export OLDGIT=0
fi
fi
# Is there a new snapshot or prepatch ?
NEW=`curl -s http://www.kernel.org/kdist/finger_banner | grep "latest snapshot 2.6 version"`
if [ -z "$NEW" ] ; then
NEW=`curl -s http://www.kernel.org/kdist/finger_banner | grep "latest mainline 2.6 version"`
if [ -z "$NEW" ] ; then
if [ "$OLDRC" -ne 0 ] ; then
NEW=`curl -s http://www.kernel.org/kdist/finger_banner | grep "latest stable 2.6." | head -n1`
else
echo "No new rc or git snapshot of stable branch".
exit 0
fi
fi
fi
export N=`echo $NEW | awk '{ print $11 }'`
if [ -z "$N" ]; then
# "Stable version"
export NEW=`echo $NEW | awk '{ print $10 }'`
else
export NEW=`echo $NEW | awk '{ print $11 }'`
fi
export NEWBASE=`echo $NEW | sed s/-/\ /g | sed s/2\.6\.// | awk '{ print $1 }'`
if [ `echo $NEW | grep -c rc` -ge 1 ]; then
export NEWRC=`echo $NEW | sed s/-/\ /g | sed s/rc// | awk '{ print $2 }'`
if [ `echo $NEW | grep -c git` -ge 1 ]; then
export NEWGIT=`echo $NEW | sed s/-/\ /g | sed s/git// | awk '{ print $3 }'`
else
export NEWGIT=0
fi
else
export NEWRC=0
if [ `echo $NEW | grep -c git` -ge 1 ]; then
export NEWGIT=`echo $NEW | sed s/-/\ /g | sed s/git// | awk '{ print $2 }'`
else
export NEWGIT=0
fi
fi
echo "OLD kernel was $OLD BASE=$OLDBASE RC=$OLDRC GIT=$OLDGIT"
echo "NEW kernel is $NEW BASE=$NEWBASE RC=$NEWRC GIT=$NEWGIT"
if [ "$OLDRC" -eq 0 -a "$OLDGIT" -eq 0 -a "$OLDGIT" -ne "$NEWGIT" ]; then
echo "Rebasing from a stable release to a new git snapshot"
perl -p -i -e 's/^%define\ released_kernel\ 1/\%define\ released_kernel\ 0/' kernel.spec
perl -p -i -e 's/^%define\ rawhide_skip_docs\ 1/\%define\ rawhide_skip_docs\ 0/' kernel.spec
# force these to zero in this case, they may not have been when we rebased to stable
perl -p -i -e 's/^%define\ rcrev.*/\%define\ rcrev\ 0/' kernel.spec
perl -p -i -e 's/^%define\ gitrev.*/\%define\ gitrev\ 0/' kernel.spec
fi
# make sure we build docs at least once per -rc kernel, shut it off otherwise
if [ "$OLDRC" -ne 0 -a "$NEWRC" -gt "$OLDRC" ]; then
perl -p -i -e 's/^%define\ rawhide_skip_docs\ 1/\%define\ rawhide_skip_docs\ 0/' kernel.spec
else
if [ "$NEWRC" -eq "$OLDRC" -a "$NEWGIT" -gt "$OLDGIT" ]; then
# common case, same -rc, new -git, make sure docs are off.
perl -p -i -e 's/^%define\ rawhide_skip_docs\ 0/\%define\ rawhide_skip_docs\ 1/' kernel.spec
fi
fi
if [ "$NEWRC" -eq 0 -a "$NEWGIT" -eq 0 ]; then
echo "Rebasing from -rc to final release."
perl -p -i -e 's/^%define\ released_kernel\ 0/\%define\ released_kernel\ 1/' kernel.spec
perl -p -i -e 's/^%define\ rawhide_skip_docs\ 1/\%define\ rawhide_skip_docs\ 0/' kernel.spec
export OLD_TARBALL_BASE=$(($OLDBASE-1))
perl -p -i -e 's/^%define\ base_sublevel\ $ENV{OLD_TARBALL_BASE}/%define\ base_sublevel\ $ENV{NEWBASE}/' kernel.spec
perl -p -i -e 's/^%define\ rcrev.*/\%define\ rcrev\ 0/' kernel.spec
perl -p -i -e 's/^%define\ gitrev.*/\%define\ gitrev\ 0/' kernel.spec
grep -v kernel-2.6.$OLD_TARBALL_BASE .cvsignore >.cvsignore.tmp ; mv .cvsignore.tmp .cvsignore
echo kernel-2.6.$NEWBASE >> .cvsignore
for i in upstream sources .cvsignore
do
grep -v linux-2.6.$OLD_TARBALL_BASE.tar.bz2 $i > .$i.tmp; mv .$i.tmp $i
grep -v patch-2.6.$OLDBASE-rc$OLDRC.bz2 $i > .$i.tmp; mv .$i.tmp $i
grep -v patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2 $i > .$i.tmp; mv .$i.tmp $i
done
echo linux-2.6.$NEWBASE.tar.bz2 >> upstream
rm -f linux-2.6.$OLD_TARBALL_BASE.tar.bz2
rm -f linux-2.6.$OLD_TARBALL_BASE.tar.bz2.sign
rm -f patch-2.6.$OLDBASE-rc$OLDRC.bz2
rm -f patch-2.6.$OLDBASE-rc$OLDRC.bz2.sign
rm -f patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2
rm -f patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2.sign
cvs remove linux-2.6.$OLD_TARBALL_BASE.tar.bz2.sign
cvs remove patch-2.6.$OLDBASE-rc$OLDRC.bz2.sign
cvs remove patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2.sign
make download
make upload FILES=linux-$NEW.tar.bz2
cvs add linux-$NEW.tar.bz2.sign
bumpspecfile.py kernel.spec "- $NEW"
make clog
echo FIXME! Fix up fedora_cvs_origin
make verrel
exit 1
fi
if [ "$OLDRC" != "$NEWRC" ]; then
echo "Different rc. Rebasing from $OLDRC to $NEWRC"
perl -p -i -e 's/^%define\ rcrev.*/\%define\ rcrev\ $ENV{"NEWRC"}/' kernel.spec
perl -p -i -e 's/$ENV{OLDBASE}-rc$ENV{OLDRC}.bz2/$ENV{NEWBASE}-rc$ENV{NEWRC}.bz2/' .cvsignore
perl -p -i -e 's/$ENV{OLDBASE}-rc$ENV{OLDRC}.bz2/$ENV{NEWBASE}-rc$ENV{NEWRC}.bz2/' upstream
grep -v patch-2.6.$OLDBASE-rc$OLDRC.bz2 sources > .sources.tmp; mv .sources.tmp sources
grep -v patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2 .cvsignore >.cvsignore.tmp ; mv .cvsignore.tmp .cvsignore
if [ `grep -c patch-2.6.$NEWBASE-rc$NEWRC.bz2 upstream` -eq 0 ]; then
echo patch-2.6.$NEWBASE-rc$NEWRC.bz2 >> .cvsignore
echo patch-2.6.$NEWBASE-rc$NEWRC.bz2 >> upstream
fi
rm -f patch-2.6.$OLDBASE-rc$OLDRC.bz2
rm -f patch-2.6.$OLDBASE-rc$OLDRC.bz2.sign
cvs remove patch-2.6.$OLDBASE-rc$OLDRC.bz2.sign
make download
make upload FILES=patch-2.6.$NEWBASE-rc$NEWRC.bz2
cvs add patch-2.6.$NEWBASE-rc$NEWRC.bz2.sign
# Another awkward (albeit unlikely) corner case.
# Moving from say 26-rc3-git1 to 26-rc4-git1
# The above will grab the new -rc, but the below will
# think that the -git hasn't changed.
# Fudge around this, by pretending the old git was something crazy.
OLDGIT=99
fi
if [ "$OLDGIT" != "$NEWGIT" ]; then
if [ "$OLDRC" -eq 0 -a "$OLDGIT" -eq 0 ]; then
echo "Rebasing to pre-rc git$NEWGIT"
else
echo "Different git. Rebasing from git$OLDGIT to git$NEWGIT"
fi
perl -p -i -e 's/^%define\ gitrev.*/\%define\ gitrev\ $ENV{"NEWGIT"}/' kernel.spec
if [ "$OLDGIT" -ne 0 ]; then
if [ "$NEWGIT" -ne 0 ]; then
perl -p -i -e 's/$ENV{OLD}/$ENV{NEW}/' .cvsignore
perl -p -i -e 's/$ENV{OLD}/$ENV{NEW}/' upstream
fi
grep -v patch-$OLD.bz2 sources > .sources.tmp; mv .sources.tmp sources
grep -v patch-$OLD.bz2 upstream > .upstream.tmp; mv .upstream.tmp upstream
else
echo patch-$NEW.bz2 >> .cvsignore
echo patch-$NEW.bz2 >> upstream
fi
make download
make upload FILES=patch-$NEW.bz2
cvs add patch-$NEW.bz2.sign
if [ "$OLDGIT" -ne 0 ]; then
rm -f patch-$OLD.bz2
rm -f patch-$OLD.bz2.sign
cvs remove patch-$OLD.bz2.sign
fi
fi
if [ "$OLDRC" != "$NEWRC" -o "$OLDGIT" != "$NEWGIT" ]; then
perl -p -i -e 's|^ApplyPatch\ git-linus.diff|#ApplyPatch\ git-linus.diff|' kernel.spec
> git-linus.diff
bumpspecfile.py kernel.spec "- $NEW"
make clog
exit 1
else
exit 0
fi

26
scripts/reconfig.sh Executable file
View file

@ -0,0 +1,26 @@
#!/bin/bash
base_sublevel=$(grep "^%define base_sublevel" kernel.spec | head -n1 | awk '{ print $3 }')
#if [ `grep -c "^%define released_kernel 1" kernel.spec` -ge 1 ]; then
V=$base_sublevel
#else
# let V=$base_sublevel+1
#fi
cd kernel-2.6.$base_sublevel/linux-2.6.$base_sublevel.noarch/
rm -f kernel-*.config
cp ../../kernel-2.6.$V-*.config .
for i in kernel-*.config
do
echo $i
rm -f .config
cp $i .config
Arch=`head -1 .config | cut -b 3-`
make ARCH=$Arch nonint_oldconfig > /dev/null || exit 1
echo "# $Arch" > configs/$i
cat .config >> configs/$i
echo
done

64
scripts/rediffall.pl Normal file
View file

@ -0,0 +1,64 @@
#!/usr/bin/perl -w
#
# Script to rediff all patches in the spec
# Usage: perl -w rediffall.pl < kernel-2.4.spec
#
# $workdir is where the new rediff'ed patches are created
# $origdir is where the original patches and tarball are located
#
# Note that both $workdir and $origdir must be absolute path names.
# Suggestion: create a /kernel symbolic link to the top of your CVS tree.
my $workdir = "/dev/shm/redifftree";
my $origdir = "/home/davej/devel";
my $kernver = "linux-2.6.17";
my $datestrip = "s/^\\(\\(+++\\|---\\) [^[:blank:]]\\+\\)[[:blank:]].*/\\1/";
my $patchindex = 0;
my @patchlist;
# phase 1: create a tree
print "Extracting pristine source..\n";
system("mkdir -p $workdir");
system("rm -rf $workdir/*");
chdir("$workdir");
system("tar -jxvf $origdir/$kernver.tar.bz2 > /dev/null");
system("cp -al $kernver linux-$patchindex");
# phase 2: read the spec from stdin and store all patches
print "Reading specfile..\n";
while (<>) {
my $line = $_;
if ($line =~ /^Patch([0-9]+)\: ([a-zA-Z0-9\-\_\.\+]+\.patch)/) {
$patchlist[$1] = $2;
} else {
if ($line =~ /^Patch([0-9]+)\: ([a-zA-Z0-9\-\_\.]+\.bz2)/) {
$patchlist[$1] = $2;
}
}
if ($line =~ /^%patch([0-9]+) -p1/) {
# copy the tree, apply the patch, diff and remove the old tree
my $oldindex = $patchindex;
$patchindex = $1;
print "rediffing patch number $patchindex: $patchlist[$patchindex]\n";
system("cp -al linux-$oldindex linux-$patchindex");
chdir("linux-$patchindex");
if ($patchlist[$patchindex] =~ /bz2/) {
system("bzcat $origdir/$patchlist[$patchindex] | patch -p1 &>/dev/null");
} else {
system("cat $origdir/$patchlist[$patchindex] | patch -p1 &>/dev/null");
}
chdir("$workdir");
system("rm -f `find -name \"*orig\"`");
if ($patchlist[$patchindex] =~ /bz2/) {
} else {
system("diff -urNp --exclude-from=/home/davej/.exclude linux-$oldindex linux-$patchindex | sed '$datestrip' > $patchlist[$patchindex]");
}
system("rm -rf linux-$oldindex");
}
};
1;

222
scripts/sort-config Executable file
View file

@ -0,0 +1,222 @@
#!/bin/bash
SRC=($(ls config-* 2>/dev/null))
TGT=($(ls kernel-*/linux-*.noarch/configs/kernel-2.6.*-*.config \
kernel-*/linux-*.noarch/configs/kernel-2.6.*-*-debug.config 2>/dev/null))
TGT1=(${TGT[*]#kernel-*/linux-*.noarch/configs/kernel-2.6.*-})
ALL_OPTS="cdfimn"
if [ $# -lt 2 ] ; then
echo -e "Usage:\n $(basename $0) [-$ALL_OPTS] input target\n"
echo -e " Sort input config file into the same order as the target\n"
echo -e " -c: insert comments about non-matching/impossible items"
echo -e " -d: show raw unsorted output with extra debug text"
echo -e " -f: force output to match what is in the target config,"
echo -e " and/or remove impossible config items"
echo -e " -i: find impossible config items"
echo -e " -m: find changed config items"
echo -e " -n: do not sort output\n"
echo -e " input: source config file" ' [' "${SRC[*]#config-}" ']\n'
echo -e " target: output arch name" ' [' "${TGT1[*]%.config}" ']\n'
exit 1
fi
while getopts "$ALL_OPTS" OPTION ; do
case $OPTION in
c)
ADDCOMMENT=1 ;;
d)
DEBUG=1 ;;
f)
FORCE=1 ;;
i)
FIND_IMPOSS=1 ;;
m)
FIND_CHANGED=1 ;;
n)
NOSORT=1 ;;
\?)
exit 2 ;;
esac
done
if [ "$FORCE" -a "$ADDCOMMENT" ] ; then
echo "-f and -c options cannot be used together"
exit 2
fi
shift $((OPTIND-1))
TEMPFILES="xx00 xx01 xx98 xx99"
TEMPLEFT=
for FILE in $TEMPFILES ; do
[ -f "$FILE" ] && TEMPLEFT="Y"
done
if [ "$TEMPLEFT" ] ; then
echo "WARNING! Output files named xx?? already exist." >&2
read -p "Press <Enter> to erase files, or Ctrl-C to exit..."
echo >&2
fi
rm -f $TEMPFILES
SRCFILE=config-$1
[ ! -f $SRCFILE ] && echo "Input file" $SRCFILE "missing" && exit 2
TGTFILE=kernel-*/linux-*.noarch/configs/kernel-2.6.*-$2.config
[ ! -f $TGTFILE ] && echo "No target file matching" $TGTFILE "exists" && exit 2
[ "$FIND_IMPOSS" ] && \
find kernel-*/*.noarch -name Kconfig\* -type f \
| xargs egrep -s -h '^[[:space:]]*(menu)?config[[:space:]]+' \
| sed -r 's/^[[:space:]]*(menu)?config[[:space:]]+/CONFIG_/' \
| sort | uniq >xx98
extract_optname() {
# extract the option name from $TEXT, setting $OPTNAME
OPTNAME=
if [ "${TEXT:0:7}" = "CONFIG_" ] ; then
OPTNAME=${TEXT%%=*}
elif [ "${TEXT:0:9}" = "# CONFIG_" ] ; then
OPTNAME=${TEXT%" is not set"}
OPTNAME=${OPTNAME#\# }
fi
}
print_saved_comments() {
if [ $IX -gt 0 ] ; then
[ "$DEBUG" ] && echo " ->" $IX "comments were saved"
(( IX-- ))
for IX in $(seq 0 $IX) ; do
echo "$LINE":"${SAVECOMMENT[$IX]}"
done
unset SAVECOMMENT
IX=0
fi
}
assign_line_number() {
# use input line numbers if not sorting
[ "$NOSORT" ] && LINE=$IN
# make sure it has a line number
[ -z "$LINE" ] && LINE=999999
}
IX=0
IN=0
declare -a SAVECOMMENT
cat ${SRCFILE} | {
while read TEXT ; do
LINE=
COMMENT=
# replace empty lines
[ -z "$TEXT" ] && TEXT='//'
if [ "${TEXT:0:7}" = "CONFIG_" -o "${TEXT:0:9}" = "# CONFIG_" ] ; then
LINE=$(grep -n "^$TEXT" $TGTFILE | head -1 | cut -f 1 -d ':')
if [ -z "$LINE" ] ; then
[ "$DEBUG" ] && echo "nofind ->" "$TEXT"
extract_optname
if [ "$OPTNAME" ] ; then
if [ "$FIND_CHANGED" ] ; then
for FINDTEXT in "^${OPTNAME}=" "^# ${OPTNAME} is not set" ; do
if [ -z "$LINE" ] ; then
[ "$DEBUG" ] && echo "looking for ->" "$FINDTEXT"
LINE=$(grep -n "$FINDTEXT" $TGTFILE | head -1 | cut -f 1 -d ':')
if [ "$LINE" ] ; then
CHANGED=$(grep "$FINDTEXT" $TGTFILE | head -1)
if [ "$FORCE" ] ; then
TEXT=$CHANGED
[ "$DEBUG" ] && echo 'forced ->' "$TEXT"
else
if [ "$ADDCOMMENT" ] ; then
if [ ${CHANGED:0:1} = '#' ] ; then
NEWOPT="not set"
else
NEWOPT=${CHANGED#$OPTNAME}
fi
COMMENT="# -- Next option changed to \"${NEWOPT}\" at target line $LINE --"
fi
fi
fi
fi
done
fi
if [ "$FIND_IMPOSS" -a -z "$LINE" -a -z "$COMMENT" ] ; then
POSSIBLE=$(grep -n "^$OPTNAME" xx98)
if [ -z "$POSSIBLE" ] ; then
if [ "$ADDCOMMENT" ] ; then
COMMENT="# -- Next option is impossible --"
elif [ "$FORCE" ] ; then
[ "$DEBUG" ] && echo 'impossible ->' "$TEXT"
TEXT=""
fi
fi
fi
fi
fi
else
# not a config variable
COMMENT="$TEXT"
TEXT=
fi
[ "$DEBUG" -a "$COMMENT" ] && echo "comment ->" "$LINE" "$COMMENT"
[ "$DEBUG" -a "$TEXT" ] && echo "text ->" "$LINE" "$TEXT"
if [ "$TEXT" ] ; then
assign_line_number
# print the saved comments first
print_saved_comments
# now print the latest comment and text
[ "$COMMENT" ] && echo "$LINE":"$COMMENT"
echo "$LINE":"$TEXT"
elif [ "$COMMENT" ] ; then
# no output yet, save the comment
SAVECOMMENT[$IX]="$COMMENT"
let IX++
[ "$DEBUG" ] && echo 'savecomment (#'${IX}')'
fi
let IN++
done
# flush the buffers
assign_line_number
print_saved_comments
[ "$DEBUG" ] && echo "$IN lines read from input"
} >xx99
if [ "$DEBUG" ] ; then
# just show the raw output with debug info, then exit
cat xx99
else
# split output into two files, for matched and unmatched items
cat xx99 | sort -s -t ":" -k 1g | csplit -k -s - /^999999/ 2>/dev/null
cat xx00 | cut -f 2- -d ':' | sed 's/^\/\/$//'
if [ -s xx01 ] ; then
echo
echo '# ------------ UNMATCHED OPTIONS ------------'
echo
cat xx01 | cut -f 2- -d ':' | sed 's/^\/\/$//'
fi
fi
rm -f $TEMPFILES