r4564 - in dists/trunk/linux-2.6/debian: . bin
Bastian Blank
waldi at costa.debian.org
Thu Oct 20 15:51:23 UTC 2005
Author: waldi
Date: 2005-10-20 15:51:23 +0000 (Thu, 20 Oct 2005)
New Revision: 4564
Modified:
dists/trunk/linux-2.6/debian/bin/apply
dists/trunk/linux-2.6/debian/rules.real
Log:
* debian/bin/apply
- Use sed to split versions. Shell can not split on the last occurence.
- Use list of revisions to check for series.
* debian/rules.real
- Fix upstream tarball name.
- Fix location and substitution for patch scripts.
Modified: dists/trunk/linux-2.6/debian/bin/apply
===================================================================
--- dists/trunk/linux-2.6/debian/bin/apply 2005-10-20 15:48:56 UTC (rev 4563)
+++ dists/trunk/linux-2.6/debian/bin/apply 2005-10-20 15:51:23 UTC (rev 4564)
@@ -61,7 +61,6 @@
unpatch_series() {
series=$1
- [ -f "$series" ] || die "I wasn't passed a series: $series"
tac $series | while read action patch; do
case "$action" in
@@ -83,7 +82,7 @@
patch_series() {
series=$1
- [ -f "$series" ] || die "I wasn't passed a series: $series"
+ [ -f "$series" ] || return
while read action patch; do
case "$action" in
@@ -103,52 +102,6 @@
echo "--> $(basename $series) fully applied."
}
-bubble_sort ()
-{
- DIR=$1
- shift
- SORTED=$@
-
- SWAPED=1
- while [ $SWAPED = 1 ]; do
- X=0
- A=""
- SWAPED=0
- NEW=""
- for i in $SORTED; do
- if [ -z "$A" ]; then
- A="$i"
- continue
- fi
- B="$i"
-
- if dpkg --compare-versions "$A" "$DIR" "$B"; then
- SWAPED=1
- NEW="$NEW $B"
- else
- NEW="$NEW $A"
- A="$B"
- fi
-
- X=$(($X + 1))
- done
- SORTED="$NEW $A"
- done
-
- echo $SORTED
-}
-
-bubble_sort_fwd ()
-{
- bubble_sort "lt" $@
-}
-
-bubble_sort_rev ()
-{
- bubble_sort "gt" $@
-}
-
-
if ! [ -d Documentation ] || ! [ -d kernel ]; then
die 'Not in kernel top level directory. Exiting'
exit 1
@@ -156,15 +109,20 @@
# for THIS particular version of the source package
version=${override_version:- at version@}
-upstream=${version%-*}
-revision=${version#*-}
+revision=$(echo $version | sed -ne 's,^\(.*\)-\([^-]*\)$,\2,p')
+upstream=$(echo $version | sed -ne 's,^\(.*\)-\([^-]*\)$,\1,p')
+revisions_count=0
+for i in ${override_revisions:- at revisions@}; do
+ revisions[$revisions_count]=$i
+ revisions_count=$(($revisions_count + 1))
+done
home=${home:-/usr/src/kernel-patches/all/$upstream/debian}
if [ -f version.Debian ]; then
current=$(cat version.Debian)
- current_rev=${current#*-}
- current_up=${current%-*}
+ current_rev=$(echo $current | sed -ne 's,^\(.*\)-\([^-]*\)$,\2,p')
+ current_up=$(echo $current | sed -ne 's,^\(.*\)-\([^-]*\)$,\1,p')
if [ "$current" = "$upstream" ]; then
current_rev=0
@@ -177,8 +135,8 @@
target=${1:-$version}
-target_rev=${target#*-}
-target_up=${target%-*}
+target_rev=$(echo $target | sed -ne 's,^\(.*\)-\([^-]*\)$,\2,p')
+target_up=$(echo $target | sed -ne 's,^\(.*\)-\([^-]*\)$,\1,p')
# Sanity checks
if dpkg --compare-versions "$target_up" ne "$upstream"; then
@@ -197,53 +155,33 @@
# reverse each used series (tac) and unapply applied patches and vice versa.
# 3. $target_rev is undefined, and $target is $upstream.
-# Revert to upstream.
-if [ "$target_rev" = "$target" ]; then
- # already reverted
- if [ "$current" = "$target" ]; then
- echo "Nothing to do, exiting."
- exit 0
- fi
-
- for base in $(cd $home/series/ && bubble_sort_fwd $(ls -d *)); do
- srev=${base#*-}
- if [ -n "$srev" ]; then
- if dpkg --compare-versions $srev "<=" $current_rev; then
- unpatch_series $home/series/$base
- fi
- else
- die "Series doesn't have a revision!"
- fi
- done
-elif dpkg --compare-versions "$current_rev" eq "$upstream" ||
- dpkg --compare-versions "$target_rev" gt "$current_rev"; then
- for base in $(cd $home/series/ && bubble_sort_rev $(ls -d *)); do
- srev=${base#*-}
- if [ -n "$srev" ]; then
- if dpkg --compare-versions "$srev" gt "$current_rev" &&
- dpkg --compare-versions "$srev" le "$target_rev"; then
- patch_series $home/series/$base
- fi
- else
- die "Series doesn't have a revision!"
- fi
- done
-elif dpkg --compare-versions "$target_rev" eq "$current_rev"; then
+if dpkg --compare-versions "$target_rev" eq "$current_rev"; then
echo "Nothing to do, exiting."
exit 0
-elif dpkg --compare-versions "$target_rev" lt "$current_rev"; then
- for base in $(cd $home/series/ && bubble_sort_fwd $(ls -d *)); do
- srev=${base#*-}
- if [ -n "$srev" ]; then
- # -gt because you don't want to unapply the target series
- if dpkg --compare-versions "$srev" le "$current_rev" &&
- dpkg --compare-versions "$srev" gt "$target_rev"; then
- unpatch_series $home/series/$base
- fi
- else
- die "Series doesn't have a revision!"
- fi
+else
+ cur_index=$revisions_count
+ while [ $cur_index -gt 0 ]; do
+ [ ${revisions[$(($cur_index - 1))]} == $current_rev ] && break
+ cur_index=$(($cur_index - 1))
done
+ target_index=$revisions_count
+ while [ $target_index -gt 0 ]; do
+ [ ${revisions[$(($target_index - 1))]} == $target_rev ] && break
+ target_index=$(($target_index - 1))
+ done
+ if [ $target_index -gt $cur_index ]; then
+ while [ $target_index -gt $cur_index ]; do
+ series="$home/series/${upstream}-${revisions[$cur_index]}"
+ [ -f "$series" ] && patch_series $series
+ cur_index=$(($cur_index + 1))
+ done
+ elif [ $target_index -lt $cur_index ]; then
+ while [ $target_index -lt $cur_index ]; do
+ cur_index=$(($cur_index - 1))
+ series="$home/series/${upstream}-${revisions[$cur_index]}"
+ [ -f "$series" ] && unpatch_series $series
+ done
+ fi
fi
echo $target > version.Debian
Modified: dists/trunk/linux-2.6/debian/rules.real
===================================================================
--- dists/trunk/linux-2.6/debian/rules.real 2005-10-20 15:48:56 UTC (rev 4563)
+++ dists/trunk/linux-2.6/debian/rules.real 2005-10-20 15:51:23 UTC (rev 4564)
@@ -121,7 +121,7 @@
cat $(basedir)/config.$(FLAVOUR) >> $@
$(BUILD_DIR)/linux-source-$(UPSTREAM_VERSION).tar.bz2: SOURCE_DIR=$(BUILD_DIR)/source
-$(BUILD_DIR)/linux-source-$(UPSTREAM_VERSION).tar.bz2: DIR = $(BUILD_DIR)/linux-source-$(VERSION)
+$(BUILD_DIR)/linux-source-$(UPSTREAM_VERSION).tar.bz2: DIR = $(BUILD_DIR)/linux-source-$(UPSTREAM_VERSION)
$(BUILD_DIR)/linux-source-$(UPSTREAM_VERSION).tar.bz2: $(STAMPS_DIR)/source
rm -rf $@ $(DIR)
cp -al $(SOURCE_DIR) $(DIR)
@@ -135,7 +135,7 @@
rm -rf $(DIR)
mkdir -p $(DIR)
cp -al $(srcfiles) $(DIR)
- cd $(DIR); override_version=$(SOURCE_VERSION) home=$(CURDIR)/debian/patches-debian sh $(CURDIR)/debian/bin/apply
+ cd $(DIR); override_version="$(SOURCE_VERSION)" override_revisions="$(REVISIONS)" home=$(CURDIR)/debian/patches-debian sh $(CURDIR)/debian/bin/apply
#make-kpkg does this when building kernel-source.
mv $(DIR)/scripts/package/Makefile $(DIR)/scripts/package/Makefile.dist
mv $(DIR)/scripts/package/builddeb $(DIR)/scripts/package/builddeb.dist
@@ -256,7 +256,7 @@
$(MAKE) -f debian/rules.real install-base DH_OPTIONS=$(DH_OPTIONS)
install-patch: PACKAGE = linux-patch-debian-$(VERSION)
-install-patch: pbase := /usr/src/kernel-patches/all/$(VERSION)
+install-patch: pbase := /usr/src/kernel-patches/all/$(SOURCE_UPSTREAM)
install-patch: pfull := debian/$(PACKAGE)$(pbase)
install-patch: ptchs := $(notdir $(wildcard debian/patches-arch/*))
install-patch: DH_OPTIONS = -p$(PACKAGE)
@@ -267,8 +267,8 @@
dh_installdirs $(DH_OPTIONS) $(pbase)/apply $(pbase)/debian $(pbase)/unpatch
dh_install $(DH_OPTIONS) debian/patches-debian/* $(pbase)/debian
# Install the debian patches
- sed 's/@version@/$(release)/g' debian/bin/apply > $(pfull)/apply/debian
- sed 's/@upstream@/$(version)/g' debian/bin/unpatch > $(pfull)/unpatch/debian
+ sed -e 's/@version@/$(SOURCE_VERSION)/g' -e 's/@revisions@/$(REVISIONS)/' debian/bin/apply > $(pfull)/apply/debian
+ sed -e 's/@upstream@/$(SOURCE_UPSTREAM)/g' debian/bin/unpatch > $(pfull)/unpatch/debian
chmod 755 $(pfull)/apply/debian $(pfull)/unpatch/debian
chmod 644 $(pfull)/debian/*.patch
bzip2 -9 $(pfull)/debian/*.patch
More information about the Kernel-svn-changes
mailing list