| // -*- mode:doc -*- ; |
| // vim: set syntax=asciidoc: |
| |
| [[customize-patches]] |
| === Adding project-specific patches |
| |
| It is sometimes useful to apply 'extra' patches to packages - on top of |
| those provided in Buildroot. This might be used to support custom |
| features in a project, for example, or when working on a new |
| architecture. |
| |
| The +BR2_GLOBAL_PATCH_DIR+ configuration option can be used to specify |
| a space separated list of one or more directories containing package |
| patches. |
| |
| For a specific version +<packageversion>+ of a specific package |
| +<packagename>+, patches are applied from +BR2_GLOBAL_PATCH_DIR+ as |
| follows: |
| |
| . For every directory - +<global-patch-dir>+ - that exists in |
| +BR2_GLOBAL_PATCH_DIR+, a +<package-patch-dir>+ will be determined as |
| follows: |
| + |
| * +<global-patch-dir>/<packagename>/<packageversion>/+ if the |
| directory exists. |
| + |
| * Otherwise, +<global-patch-dir>/<packagename>+ if the directory |
| exists. |
| |
| . Patches will then be applied from a +<package-patch-dir>+ as |
| follows: |
| + |
| * If a +series+ file exists in the package directory, then patches are |
| applied according to the +series+ file; |
| + |
| * Otherwise, patch files matching +*.patch+ are applied in |
| alphabetical order. So, to ensure they are applied in the right |
| order, it is highly recommended to name the patch files like this: |
| +<number>-<description>.patch+, where +<number>+ refers to the |
| 'apply order'. |
| |
| For information about how patches are applied for a package, see |
| xref:patch-apply-order[] |
| |
| The +BR2_GLOBAL_PATCH_DIR+ option is the preferred method for |
| specifying a custom patch directory for packages. It can be used to |
| specify a patch directory for any package in buildroot. It should also |
| be used in place of the custom patch directory options that are |
| available for packages such as U-Boot and Barebox. By doing this, it |
| will allow a user to manage their patches from one top-level |
| directory. |
| |
| The exception to +BR2_GLOBAL_PATCH_DIR+ being the preferred method for |
| specifying custom patches is +BR2_LINUX_KERNEL_PATCH+. |
| +BR2_LINUX_KERNEL_PATCH+ should be used to specify kernel patches that |
| are available at a URL. *Note:* +BR2_LINUX_KERNEL_PATCH+ specifies kernel |
| patches that are applied after patches available in +BR2_GLOBAL_PATCH_DIR+, |
| as it is done from a post-patch hook of the Linux package. |
| |