diff --git a/Manual.md b/Manual.md index e975b3c7fe8..672966818d1 100644 --- a/Manual.md +++ b/Manual.md @@ -23,6 +23,7 @@ packages for XBPS, the `Void Linux` native packaging system. * [Repositories defined by Branch](#repo_by_branch) * [Package defined repositories](#pkg_defined_repo) * [Checking for new upstream releases](#updates) + * [Handling patches](#patches) * [Build style scripts](#build_scripts) * [Build helper scripts](#build_helper) * [Functions](#functions) @@ -761,6 +762,29 @@ versions. Example: `ignore="*b*"` - `version` is the version number used to compare against upstream versions. Example: `version=${version//./_}` + +### Handling patches + +Sometimes software needs to be patched, most commonly to fix bugs that have +been found or to fix compilation with new software. + +To handle this, xbps-src has patching functionality. It will look for all files +that match the glob `srcpkgs/$pkgname/patches/*.{diff,patch}` and will +automatically apply all files it finds using `patch(1)` with `-Np0`. This happens +during the `do_patch()` phase. The variable `PATCHESDIR` is +available in the template, pointing to the `patches` directory. + +The patching behaviour can be changed in the following ways: + +- A file called `series` can be created in the `patches` directory with a newline +separated list of patches to be applied in the order presented. When present +xbps-src will only apply patches named in the `series` file. + +- A file with the same name as one of the patches but with `.args` as extension can +be used to set the args passed to `patch(1)`. As an example, if `foo.patch` requires +special arguments to be passed to `patch(1)` that can't be used when applying other +patches, `foo.patch.args` can be created containing those args. + ### build style scripts