PCA
Feature patches for Patch Check Advanced.
I've written a few patches for Martin Paul's excellent Patch Check Advanced. The most useful, perhaps, and least trivial, is the one implementing multi-threaded patch download, affording excellent decreases in download waits for those of us who haven't taken the time to set up a pca proxy. This was integrated into PCA in revision 20080507-01. Many, many thanks must go to Martin Paul for his ongoing efforts, and for being such a stand-up guy. What do you know, it took less than a week to spot the first (and so far only) bug. That's after more than a year of use of the patch in the wild. Big audience equals lots of beta-testers. I'm as bad as Sun. The bug was non-fatal thankfully, and quickly resolved.
Less generally useful, perhaps, is the --stop patch, which Martin integrated long ago, allowing the user to choose a patch after which PCA must stop applying further patches. I found this useful for application of kernel jumbo patches, which I like to reboot immediately, and I mean immediately, after applying.
Finally, and perhaps not useful to anyone in particular, a logical next step after PCA's --minage option, which allows the user to ignore any patch less than the specified age. This option, combined with the --safe and --noreboot options, opens the door to automated, unattended patch application; all that seems to be missing is an emergency brake, to stop PCA in its tracks should a patch installation fail.
I don't expect to ever integrate this into PCA, I haven't even asked. But it's here, in case you want to play with it.
This patch implements two new options:
- --ifails=NUM
number of failed patch applications to tolerate - --isucceeds=NUM
number of successful patch applications to tolerate
For example, the following makes a fairly safe crontab entry — only a dozen patches applied per night, nothing hot off the press, no further installations after the first failed patch:
pca --install --noreboot --safe --minage=9 --ifails=1 --isucceeds=12
Here's a patch against PCA v5.5:
- pca_af.patch - to be applied to the pca script;
MD5 (pca_af.patch) = e9ba68c223d78543967be7248c4cfde3