From: Andreas Gruenbacher 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