[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

conversion to new dbs



This patch moves to the dbs build system provided
by the dbs package in Debian.

There are some preliminary steps as the upstream
archive needs to be moved and the pristine source
archive needs to be regenerated as a result.

Move the tarball for upstream X to the base of the
packaging dir (whatever/xfree86-4.3.0/).

Make a tar.gz in the directory above the package
dir called xfree86_4.3.0.orig.tar.gz.

Unarchive the 20030726 nightly drop into the top package
dir. I imagine that it may work with closeby nightly
drops as well, such as tonight's nightly.

To apply patch inside debian dir:
$patch -p1 < patchfile.diff

Debuild and your off to the races.

Cool things:
  no checksource in the rules file
  The clean works better, I think.
  New dbs tools for managing patches withing and between versions
  The patch is relatively small.

TODO:
  copy the dbs doc stuff into debian/README or maybe just refer to it

Warren Turkal

diff -uNr debian.20030726/control debian/control
--- debian.20030726/control	2003-07-26 00:03:15.000000000 -0500
+++ debian/control	2003-07-26 22:44:09.000000000 -0500
@@ -4,7 +4,7 @@
 Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
 Uploaders: Branden Robinson <branden@debian.org>
 Standards-Version: 3.5.10
-Build-Depends: dpkg (>= 1.7.0), cpp-3.2, flex, bison, bsdmainutils, m4, 
groff, zlib1g-dev | libz-dev, libncurses5-dev | libncurses-dev, libpam0g-dev 
| libpam-dev, libfreetype6-dev, libpaperg, tetex-bin, po-debconf, debhelper 
(>= 4.1.16), html2text, libglide2-dev (>> 2001.01.26) [i386], libglide3-dev 
(>> 2001.01.26) [i386], libglide3-alpha-dev [alpha], kernel-headers-2.4 
[alpha arm hppa i386 ia64 m68k mips mipsel powerpc s390 sh sparc], 
libpng12-0-dev | libpng-dev (>= 1.2.1), libexpat1-dev, libfontconfig1-dev, 
fontconfig, bzip2, libxft2-dev, libxrender-dev, libxcursor-dev, 
libstdc++5-dev | libstdc++-dev
+Build-Depends: dpkg (>= 1.7.0), dbs, cpp-3.2, flex, bison, bsdmainutils, m4, 
groff, zlib1g-dev | libz-dev, libncurses5-dev | libncurses-dev, libpam0g-dev 
| libpam-dev, libfreetype6-dev, libpaperg, tetex-bin, po-debconf, debhelper 
(>= 4.1.16), html2text, libglide2-dev (>> 2001.01.26) [i386], libglide3-dev 
(>> 2001.01.26) [i386], libglide3-alpha-dev [alpha], kernel-headers-2.4 
[alpha arm hppa i386 ia64 m68k mips mipsel powerpc s390 sh sparc], 
libpng12-0-dev | libpng-dev (>= 1.2.1), libexpat1-dev, libfontconfig1-dev, 
fontconfig, bzip2, libxft2-dev, libxrender-dev, libxcursor-dev, 
libstdc++5-dev | libstdc++-dev
 
 Package: lbxproxy
 Architecture: any
diff -uNr debian.20030726/doogie-build-system debian/doogie-build-system
--- debian.20030726/doogie-build-system	2003-07-26 00:01:10.000000000 -0500
+++ debian/doogie-build-system	1969-12-31 18:00:00.000000000 -0600
@@ -1,65 +0,0 @@
-#!/usr/bin/make -f
-# Debian rules file for XFree86
-# Originally by Stephen Early <sde1000@debian.org>
-# Modified by Mark W. Eichin <eichin@kitten.gen.ma.us>
-# Modified by Branden Robinson <branden@debian.org>
-# Complete overhaul by Adam Heath <doogie@debian.org>
-
-patchapply: debian/stampdir/patchapply
-debian/stampdir/patchapply: debian/stampdir/source.build
-	debian/scripts/patch.apply
-	touch $@
-	rm -f debian/stampdir/patchunapply
-
-patchunapply: debian/stampdir/patchunapply
-debian/stampdir/patchunapply: debian/stampdir/source.build
-	debian/scripts/patch.unapply
-	touch $@
-	rm -f debian/stampdir/patchapply
-
-.export: SOURCE_TREE
-
-#
-# The rules that really do the work all start with debian/stampdir/
-# This little trick allows us to use stamp files to keep us from
-# having to rerun long targets over and over.  It also puts
-# all stamp files in one place, for easy cleaning.
-#
-# If a stampdir rule depends on something else, be sure it is
-# another stampdir rule.  Depending on base rule won't work.
-#
-
-source.build: debian/stampdir/source.build
-debian/stampdir/source.build: debian/stampdir/source.unpack 
debian/stampdir/source.patch
-	touch $@
-
-source.clean: unfix.source.patch
-	rm -rf $(SOURCE_DIR) debian/stampdir/upstream debian/stampdir/patches
-	rm -f $(patsubst %,debian/stampdir/%,source.build source.make source.unpack 
fix.source.patch)
-
-source.make: debian/stampdir/source.make
-debian/stampdir/source.make: debian/stampdir/source.build 
debian/stampdir/patchapply
-	touch $@
-
-source.unpack: debian/stampdir/source.unpack
-debian/stampdir/source.unpack:
-	debian/scripts/source.unpack
-	touch $@
-
-source.patch: debian/stampdir/source.patch
-debian/stampdir/source.patch: debian/stampdir/source.unpack 
debian/stampdir/fix.source.patch
-	debian/scripts/source.patch
-	touch $@
-
-fix.source.patch: debian/stampdir/fix.source.patch
-debian/stampdir/fix.source.patch:
-	debian/scripts/fix.source.patch
-	touch $@
-
-unfix.source.patch: debian/stampdir/unfix.source.patch
-debian/stampdir/unfix.source.patch:
-	debian/scripts/unfix.source.patch
-	touch $@
-
-DIR_TARGETS+=debian/stampdir
-# STAMPDIR_TARGETS+=source.make source.unpack source.patch fix.source.patch 
unfix.source.patch patchunapply patchunapply
diff -uNr debian.20030726/rules debian/rules
--- debian.20030726/rules	2003-07-26 00:01:29.000000000 -0500
+++ debian/rules	2003-07-26 22:39:37.000000000 -0500
@@ -12,17 +12,20 @@
 # default rule to keep things from going nuts by accident
 default: environment
 
-checksource: source.make
-	$(checksource_command)
-
-define checksource_command
-	# make sure all the patches applied cleanly
-	@if grep -v '^patch' debian/stampdir/patches/*.log; then echo "Some patches 
did not apply cleanly.  Please investigate." >&2; exit 1; fi
-	# yes, they did
-endef
+# debhelper
+export DH_OPTIONS
 
 # Include Adam Heath's source archive/patch handling system.
-include debian/doogie-build-system
+#include debian/doogie-build-system
+SCRIPT_DIR = /usr/share/dbs
+
+TAR_DIR = xc
+include $(SCRIPT_DIR)/dbs-build.mk
+
+# dpkg-arch rules
+ifeq (,$(DEB_BUILD_GNU_TYPE))
+  include $(SCRIPT_DIR)/dpkg-arch.mk
+endif
 
 # oh my God, this is a gross hack
 ELSE:=else
@@ -32,9 +35,6 @@
 DUMMY:=$(shell if [ ! -x debian/setperms ]; then chmod 755 debian/setperms; 
fi)
 DUMMY:=$(shell debian/setperms)
 
-# debhelper
-export DH_OPTIONS
-
 # workaround for an aggressive overfeature of groff
 export GROFF_NO_SGR=1
 
@@ -145,10 +145,10 @@
 	debconf2po-update
 	rm -f $(STAMP_DIR)/genscripts
 
-clean: source.clean cleanscripts
+clean: cleanscripts
 	dh_testdir
-	dh_testroot
-	rm -rf $(STAMP_DIR) $(DEBTREEDIR)
+	rm -rf $(STAMP_DIR) $(SOURCE_DIR)
+	perl $(SCRIPT_DIR)/dbs_split clean
 	rm -rf debian/local/exports debian/local/xlibmesa-drm-src/modules
 	dh_clean debian/local/xserver-wrapper debian/local/xterm.faq.text.gz 
debian/MANIFEST.$(ARCH).new
 
@@ -196,11 +196,14 @@
 	debconf2po-update
 	touch $@
 
+configure: $(STAMP_DIR)/stamp-configure
+$(STAMP_DIR)/stamp-configure: $(patched)
+	dh_testdir
+
 # DO NOT CHANGE THIS RULE WITHOUT CHECKING FOR SYNCHRONICITY WITH THE 
build-server RULE BELOW
-build: $(STAMP_DIR)/build
-$(STAMP_DIR)/build: $(STAMP_DIR)/source.make $(STAMP_DIR)/genscripts
+build: $(STAMP_DIR)/stamp-build
+$(STAMP_DIR)/stamp-build: $(patched) $(STAMP_DIR)/genscripts
 	dh_testdir
-	$(checksource_command)
 
 	# copy Xft stuff into exports/{lib,include} so we don't have to pull
 	# in -L/usr/include and other, similarly ugly, stuff (including, but
@@ -244,7 +247,7 @@
 
 # DO NOT CHANGE THIS RULE WITHOUT CHECKING FOR SYNCHRONICITY WITH THE 
install-server RULE BELOW
 install: $(STAMP_DIR)/install
-$(STAMP_DIR)/install: $(STAMP_DIR)/build
+$(STAMP_DIR)/install: $(STAMP_DIR)/stamp-build
 	dh_testdir
 	dh_testroot
 ifndef test_rules
@@ -356,7 +359,7 @@
 
 binary-indep: $(STAMP_DIR)/binary-indep
 $(STAMP_DIR)/binary-indep: DH_OPTIONS=-i
-$(STAMP_DIR)/binary-indep: $(STAMP_DIR)/build $(STAMP_DIR)/install
+$(STAMP_DIR)/binary-indep: $(STAMP_DIR)/stamp-build $(STAMP_DIR)/install
 	dh_testdir
 	dh_testroot
 	dh_install --sourcedir=debian/tmp
@@ -388,7 +391,7 @@
 # DO NOT CHANGE THIS RULE WITHOUT CHECKING FOR SYNCHRONICITY WITH THE 
binary-server RULE BELOW
 binary-arch: $(STAMP_DIR)/binary-arch
 $(STAMP_DIR)/binary-arch: DH_OPTIONS=-s
-$(STAMP_DIR)/binary-arch: $(STAMP_DIR)/build $(STAMP_DIR)/install
+$(STAMP_DIR)/binary-arch: $(STAMP_DIR)/stamp-build $(STAMP_DIR)/install
 	dh_testdir
 	dh_testroot
 	dh_install --sourcedir=debian/tmp
@@ -468,9 +471,8 @@
 
 # DO NOT CHANGE THIS RULE WITHOUT CHECKING FOR SYNCHRONICITY WITH THE build 
RULE ABOVE
 build-server: $(STAMP_DIR)/build-server
-$(STAMP_DIR)/build-server: $(STAMP_DIR)/source.make $(STAMP_DIR)/genscripts
+$(STAMP_DIR)/build-server: $(patched) $(STAMP_DIR)/genscripts
 	dh_testdir
-	$(checksource_command)
 	# create source tree for static, debuggable XFree86 server
 	mkdir $(SOURCE_TREE)-xserver-xfree86-dbg
 	# we don't copy the doc, fonts or nls directories to save space; see
@@ -550,7 +552,7 @@
 	touch $@
 
 .PHONY: build build-arch build-install install clean binary-arch binary-indep 
binary
-.PHONY: default environment checksource
+.PHONY: default environment
 .PHONY: build-server install-server binary-server
 .PHONY: cleanscripts
 
diff -uNr debian.20030726/scripts/fix.source.patch 
debian/scripts/fix.source.patch
--- debian.20030726/scripts/fix.source.patch	2003-07-26 00:01:01.000000000 
-0500
+++ debian/scripts/fix.source.patch	1969-12-31 18:00:00.000000000 -0600
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-. debian/scripts/vars
-
-if [ ! -e debian/fixpatch ];  then
-  exit 0
-fi
-
-mkdir -p $STAMP_DIR/upstream/fixpatch upstream
-
-for f in $(find debian/fixpatch -type f | sort);  do
-  stampfile=$STAMP_DIR/upstream/fixpatch/$(basename $f)
-  if [ ! -e $stampfile ]; then
-    echo -n "Fixing upstream patch $f..."
-    case "$f" in
-      *.gz) cmd=zcat ;;
-      *.bz) cmd=bzcat ;;
-      *.bz2) cmd=bz2cat ;;
-      *) cmd=cat ;;
-    esac
-    if $cmd $f | (cd upstream; patch -p1 ) > $stampfile.log; then
-      echo "done."
-      touch $stampfile
-    else
-      echo "failed!"
-      exit 1
-    fi
-  else
-    echo "upstream patch fix $f already applied."
-  fi
-done
diff -uNr debian.20030726/scripts/patch.apply debian/scripts/patch.apply
--- debian.20030726/scripts/patch.apply	2003-07-26 00:01:00.000000000 -0500
+++ debian/scripts/patch.apply	1969-12-31 18:00:00.000000000 -0600
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-LC_COLLATE=C
-
-. debian/scripts/vars
-
-[ ! -d debian/patches ] && exit
-
-mkdir -p $STAMP_DIR/patches $SOURCE_TREE
-
-for f in $(find debian/patches \( -type f -or -type l \) -not -name "*~" | 
sort); do
- stampfile=$STAMP_DIR/patches/$(basename $f)
- if [ ! -e $stampfile ]; then
-  echo -n "Applying patch $f..."
-  case "$f" in
-   *.gz) cmd=zcat ;;
-   *.bz) cmd=bzcat ;;
-   *.bz2) cmd=bz2cat ;;
-   *) cmd=cat ;;
-  esac
-  if ! $cmd $f | (cd $SOURCE_TREE; patch --dry-run -p1) > $stampfile.log; 
then
-   echo "dry run failed."
-   cat $stampfile.log
-   exit 1
-  fi
-  if $cmd $f | (cd $SOURCE_TREE; patch -p1) > $stampfile.log; then
-   echo "done."
-   touch $stampfile
-  else
-   echo "failed!"
-   exit 1
-  fi
- else
-  echo "Patch $f already applied."
- fi
-done
diff -uNr debian.20030726/scripts/patch.unapply debian/scripts/patch.unapply
--- debian.20030726/scripts/patch.unapply	2003-07-26 00:01:01.000000000 -0500
+++ debian/scripts/patch.unapply	1969-12-31 18:00:00.000000000 -0600
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-LC_COLLATE=C
-
-. debian/scripts/vars
-
-mkdir -p $STAMP_DIR/patches/
-
-for f in $(find debian/patches -type f -not -name "*~" | sort -r); do
- stampfile=$STAMP_DIR/patches/`basename $f`
- if [ -e $stampfile ]; then
-  echo -n "Reversing patch $f"
-  case "$f" in
-   *.gz) cmd=zcat ;;
-   *.bz) cmd=bzcat ;;
-   *.bz2) cmd=bz2cat ;;
-   *) cmd=cat ;;
-  esac
-  if $cmd $f | (cd $PATCH_TREE; patch -R -p1) > $stampfile.log; then
-   echo " successful."
-   rm $stampfile
-  else
-   echo " failed!"
-   exit 1
-  fi
- else
-  echo "Patch $f not applied."
- fi
-done
diff -uNr debian.20030726/scripts/source.patch debian/scripts/source.patch
--- debian.20030726/scripts/source.patch	2003-07-26 00:01:02.000000000 -0500
+++ debian/scripts/source.patch	1969-12-31 18:00:00.000000000 -0600
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-. debian/scripts/vars
-
-[ ! -d upstream/patches ] && exit
-
-mkdir -p $STAMP_DIR/upstream/patches/ $SOURCE_TREE
-
-for f in `find upstream/patches -type f | sort`; do
- stampfile=$STAMP_DIR/upstream/patches/`basename $f`
- if [ ! -e $stampfile ]; then
-  echo -n "Applying upstream patch $f..."
-  case "$f" in
-   *.gz) cmd=zcat;;
-   *.bz) cmd=bzcat;;
-   *.bz2) cmd=bz2cat;;
-   *) cmd=cat;;
-  esac
-  if $cmd $f | (cd $SOURCE_TREE; patch -p1) > $stampfile.log; then
-   echo "done."
-   touch $stampfile
-  else
-   echo "failed!"
-   exit 1
-  fi
- else
-  echo "upstream patch $f already applied."
- fi
-done
diff -uNr debian.20030726/scripts/source.unpack debian/scripts/source.unpack
--- debian.20030726/scripts/source.unpack	2003-07-26 00:01:00.000000000 -0500
+++ debian/scripts/source.unpack	1969-12-31 18:00:00.000000000 -0600
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-. debian/scripts/vars
-
-mkdir -p $STAMP_DIR/upstream/archives/ $SOURCE_DIR
-
-for f in $(find upstream/archives -type f | sort); do
- stampfile=$STAMP_DIR/upstream/archives/$(basename $f)
- if [ ! -e $stampfile ]; then
-  case $f in
-   *.gz|*.tgz) cmd=zcat;;
-   *.bz) cmd=bzcat;;
-   *.bz2) cmd=bzcat;;
-   *) cmd=cat;;
-  esac
-  echo -n "Extracting upstream archive $f..."
-  if $cmd $f | (cd $SOURCE_DIR; tar xvf -) > $stampfile.log; then
-   echo "done."
-   touch $stampfile
-  else
-   echo "failed!"
-   exit 1
-  fi
- else
-  echo "upstream archive $f already extracted."
- fi
-done
diff -uNr debian.20030726/scripts/unfix.source.patch 
debian/scripts/unfix.source.patch
--- debian.20030726/scripts/unfix.source.patch	2003-07-26 00:01:02.000000000 
-0500
+++ debian/scripts/unfix.source.patch	1969-12-31 18:00:00.000000000 -0600
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-. debian/scripts/vars
-
-mkdir -p $STAMP_DIR/upstream/fixpatch upstream
-
-[ ! -e debian/fixpatch ] && exit
-
-for f in $(find debian/fixpatch -type f | sort); do
- stampfile=$STAMP_DIR/upstream/fixpatch/$(basename $f)
- if [ -e $stampfile ]; then
-  echo -n "Unfixing upstream patch $f..."
-  case "$f" in
-   *.gz) cmd=zcat;;
-   *.bz) cmd=bzcat;;
-   *.bz2) cmd=bz2cat;;
-   *) cmd=cat;;
-  esac
-  if $cmd $f | (cd upstream; patch -p1 -R ) > $stampfile.log; then
-   echo "done."
-   rm $stampfile
-  else
-   echo "failed!"
-   exit 1
-  fi
- else
-  echo "upstream patch fix $f already reversed."
- fi
-done
diff -uNr debian.20030726/scripts/vars debian/scripts/vars
--- debian.20030726/scripts/vars	2003-07-26 00:01:04.000000000 -0500
+++ debian/scripts/vars	2003-07-26 22:42:12.000000000 -0500
@@ -12,4 +12,4 @@
 # debian/rules to know when certain targets are done.
 SOURCE_TREE=build-tree/xc
 SOURCE_DIR=build-tree
-STAMP_DIR=debian/stampdir
+#STAMP_DIR=debian/stampdir
diff -uNr debian.20030726/setperms debian/setperms
--- debian.20030726/setperms	2003-07-26 00:01:10.000000000 -0500
+++ debian/setperms	2003-07-26 22:59:31.000000000 -0500
@@ -2,17 +2,7 @@
 
 set -e
 
-for FILE in doogie-build-system; do
-  chmod 755 debian/$FILE
-done
-
-for FILE in fix.source.patch \
-            getglibcversion \
-            patch.apply \
-            patch.unapply \
-            source.patch \
-            source.unpack \
-            unfix.source.patch \
+for FILE in getglibcversion \
             vars*; do
   chmod 755 debian/scripts/$FILE
 done


-- 
Treasurer, GOLUM, Inc.
http://www.golum.org



Reply to: