| 1 |
Intro |
| 2 |
===== |
| 3 |
|
| 4 |
Some scripts are used to aid maintenance (rolling releases, branching, etc). |
| 5 |
|
| 6 |
Subversion has some nice features to maintain history while copying and |
| 7 |
branching, which are used by these scripts. |
| 8 |
|
| 9 |
For ease of use, these scripts use abbreviated arguments. The following |
| 10 |
invokation would probably act on the 2.6.11 branch: |
| 11 |
|
| 12 |
# gpwhatever 11 |
| 13 |
|
| 14 |
And the following invokation would probably act on patch with code 1014 in the |
| 15 |
2.6.11 branch: |
| 16 |
|
| 17 |
# gpwhatever 11 1014 |
| 18 |
|
| 19 |
Global Configuration |
| 20 |
==================== |
| 21 |
|
| 22 |
To use the scripts, you need to create a .genpatchesrc file in your home |
| 23 |
directory. This file is sourced as raw bash. You simply set some configuration |
| 24 |
variables. |
| 25 |
|
| 26 |
Here's a sample config: |
| 27 |
|
| 28 |
--- start ~/.genpatchesrc ----------------------------------------------------- |
| 29 |
|
| 30 |
# Your username for Gentoo SVN |
| 31 |
USERNAME="dsd" |
| 32 |
|
| 33 |
# The path to the directory where you have checked out trunk |
| 34 |
GENPATCHES_TRUNK="/home/dsd/projects/gentoo/genpatches" |
| 35 |
|
| 36 |
# Optional stuff |
| 37 |
DO_WEBSITE="no" |
| 38 |
DO_EMAIL_ANNOUNCEMENT="no" |
| 39 |
|
| 40 |
# Website stuff (if DO_WEBSITE=yes) |
| 41 |
WEB_LOCAL="/home/dsd/projects/gentoo/genpatches-misc/web" |
| 42 |
WEB_GENPATCHES_BASE="dev.gentoo.org:/home/dsd/public_html/genpatches" |
| 43 |
|
| 44 |
# Path to sendmail (if DO_EMAIL_ANNOUNCEMENT=yes) |
| 45 |
SENDMAIL=/usr/sbin/sendmail |
| 46 |
|
| 47 |
--- end ~/.genpatchesrc ------------------------------------------------------- |
| 48 |
|
| 49 |
gppatch |
| 50 |
======= |
| 51 |
|
| 52 |
Applies a single genpatches patch to a kernel source tree in the current |
| 53 |
directory. |
| 54 |
|
| 55 |
Usage: |
| 56 |
# cd /usr/src/linux |
| 57 |
# gppatch 11 1025 |
| 58 |
|
| 59 |
This will take the patch with code 1025 from the 2.6.11 branch of your trunk |
| 60 |
checkout and apply it. |
| 61 |
|
| 62 |
Any additional arguments you specify will be passed onto patch(1) as normal. |
| 63 |
To dry-run a patch you can do: |
| 64 |
|
| 65 |
# gppatch 11 1030 --dry-run |
| 66 |
|
| 67 |
gpmultipatch |
| 68 |
============ |
| 69 |
|
| 70 |
Applies a trunk genpatches branch to a kernel source tree in the current |
| 71 |
directory. |
| 72 |
|
| 73 |
This will cycle through all the patches in numerical order and apply them. |
| 74 |
|
| 75 |
Usage: |
| 76 |
# cd /usr/src/linux |
| 77 |
# gpmultipatch 11 |
| 78 |
|
| 79 |
This will apply all the patches in the 2.6.11 branch to /usr/src/linux. |
| 80 |
Each patch is checked with dry-run before being applied. If a patch fails the |
| 81 |
dry-run test, then it is not applied and the entire script halts there, telling |
| 82 |
you which patch needs fixing. |
| 83 |
|
| 84 |
Assume that it tells you patch 2900 fails to apply. You'd then create a new |
| 85 |
kernel tree and do a rediff or whatever. Once you have fixed up the patch, you |
| 86 |
can tell gpmultipatch to continue applying the series from that particular |
| 87 |
patch: |
| 88 |
|
| 89 |
# cd /usr/src/linux |
| 90 |
# gpmultipatch 11 2900 |
| 91 |
|
| 92 |
This will apply the 2.6.11 branch patches in order, but ignoring all patches |
| 93 |
with code less than 2900. |
| 94 |
|
| 95 |
gpdorelease |
| 96 |
=========== |
| 97 |
|
| 98 |
Takes a branch, produces tarballs, uploads tarballs to toucan, and tags the |
| 99 |
release snapshot in SVN. |
| 100 |
|
| 101 |
See 20_release-howto |
| 102 |
|
| 103 |
TODO: |
| 104 |
QA checks |
| 105 |
Sanity checks (svn status is empty etc) |
| 106 |
Post-commit hooks |
| 107 |
|
| 108 |
gpcreatebranch |
| 109 |
============== |
| 110 |
|
| 111 |
To be written: Copy one branch to another under trunk. |
| 112 |
|
| 113 |
gpmvhistorical |
| 114 |
============== |
| 115 |
|
| 116 |
To be written: Move a trunk branch into historical |