From: Andreas Gruenbacher <agruen@suse.de>
Organization: SuSE Linux AG
Subject: Patch Management Scripts
Date: Sat, 18 Jan 2003 18:40:32 +0100
Hello,
this is to announce that the patch-scripts package is available at
http://www.suse.de/~agruen/patch-scripts/. The current version is 0.11.
These scripts were based on Andrew Morton's patch scripts
(http://www.zip.com.au/~akpm/linux/patches/), but have been very
heavily modified since then.
I am sure that there still a couple of bugs left, but these should
really be ironed out before long.
The scripts support:
* Managing a stack of patches, applying and
removing patches from the stack, adding new patches, and
modifying them under a minimal kind of version control.
* They should be reasonably robust (hopefully!).
* Works for ordinary packages with only a few patches, and
also for the kernel with several hundered patches.
* The refresh script is careful not to drop any documentation
preceding the actual patch in the patch files.
* Simple to set up to get into "working mode" quickly.
* Any applied patch can be refreshed. This is trivial for the
topmost patch. If a file is modified by multiple patches,
all changes to the file affect only the topmost patch that
changed that file; patches further below will not include
any such changes when being rediffed.
* Several queries are supported, such as:
- topmost, preceding, following patch(es),
- files a patch creates or modifies
- patches that modify a given file
- changes a patch includes
- changes to a patch in the working directory
For those of you who are interested, here is a how to get started, after
grabbing and installing the patch-scripts package.
Patching an ordinary package:
* The usual RPM contains a tarball and a set of
patches. Unpack the tarball and copy the
patches into the patches/ sub-directory in the
package.
* Create a file named series in the patches/ directory.
The series file contains the list of patches for
the package.
The patches are applied with -p1 by default; for -p0
or other style patches the series file must have
-p0 or similar after the patch name (but on the same
line).
* Run `pushpatch -a' to apply all the patches. (Note
that the first run is slightly slower because lists
of files modified by the patches are created.)
* Proceed with the README file in the patch-scripts
package.
Patching the kernel:
* The kernel lives in a CVS repository. Check out this
tree, say in a directory called $KCVS.
* Unpack the kernel tarball, e.g., in $SRC. Create the
patches/ directory, and add soft links to the various
patches.* directories in the CVS into the patches
directory, e.g.,
$ cd $SRC/patches
$ ln -s $KCVS/patches.* .
* Create a series file. This is done like that:
$ (cd $K_SRC/scripts ; \
guards $(arch-symbols)) \
< ../series.conf \
> $SRC/patches/series
* Change to $SRC, and run `pushpatch -qa' to apply
the patches (-q gives much less output).
* As above, check the README in the patch-scripts
package, and try out what the individual scripts do.
Cheers,
Andreas.
------------------------------------------------------------------
Andreas Gruenbacher SuSE Linux AG
mailto:agruen@suse.de Deutschherrnstr. 15-19
http://www.suse.de/ D-90429 Nuernberg, Germany