Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
89
sources/poky/documentation/dev-manual/quilt.rst
Normal file
89
sources/poky/documentation/dev-manual/quilt.rst
Normal file
@@ -0,0 +1,89 @@
|
||||
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
|
||||
|
||||
Using Quilt in Your Workflow
|
||||
****************************
|
||||
|
||||
`Quilt <https://savannah.nongnu.org/projects/quilt>`__ is a powerful tool
|
||||
that allows you to capture source code changes without having a clean
|
||||
source tree. This section outlines the typical workflow you can use to
|
||||
modify source code, test changes, and then preserve the changes in the
|
||||
form of a patch all using Quilt.
|
||||
|
||||
.. note::
|
||||
|
||||
With regard to preserving changes to source files, if you clean a
|
||||
recipe or have :ref:`ref-classes-rm-work` enabled, the
|
||||
:ref:`devtool workflow <sdk-manual/extensible:using \`\`devtool\`\` in your sdk workflow>`
|
||||
as described in the Yocto Project Application Development and the
|
||||
Extensible Software Development Kit (eSDK) manual is a safer
|
||||
development flow than the flow that uses Quilt.
|
||||
|
||||
Follow these general steps:
|
||||
|
||||
#. *Find the Source Code:* Temporary source code used by the
|
||||
OpenEmbedded build system is kept in the :term:`Build Directory`. See the
|
||||
":ref:`dev-manual/temporary-source-code:finding temporary source code`" section to
|
||||
learn how to locate the directory that has the temporary source code for a
|
||||
particular package.
|
||||
|
||||
#. *Change Your Working Directory:* You need to be in the directory that
|
||||
has the temporary source code. That directory is defined by the
|
||||
:term:`S` variable.
|
||||
|
||||
#. *Create a New Patch:* Before modifying source code, you need to
|
||||
create a new patch. To create a new patch file, use ``quilt new`` as
|
||||
below::
|
||||
|
||||
$ quilt new my_changes.patch
|
||||
|
||||
#. *Notify Quilt and Add Files:* After creating the patch, you need to
|
||||
notify Quilt about the files you plan to edit. You notify Quilt by
|
||||
adding the files to the patch you just created::
|
||||
|
||||
$ quilt add file1.c file2.c file3.c
|
||||
|
||||
#. *Edit the Files:* Make your changes in the source code to the files
|
||||
you added to the patch.
|
||||
|
||||
#. *Test Your Changes:* Once you have modified the source code, the
|
||||
easiest way to test your changes is by calling the :ref:`ref-tasks-compile`
|
||||
task as shown in the following example::
|
||||
|
||||
$ bitbake -c compile -f package
|
||||
|
||||
The ``-f`` or ``--force`` option forces the specified task to
|
||||
execute. If you find problems with your code, you can just keep
|
||||
editing and re-testing iteratively until things work as expected.
|
||||
|
||||
.. note::
|
||||
|
||||
All the modifications you make to the temporary source code disappear
|
||||
once you run the :ref:`ref-tasks-clean` or :ref:`ref-tasks-cleanall`
|
||||
tasks using BitBake (i.e. ``bitbake -c clean package`` and
|
||||
``bitbake -c cleanall package``). Modifications will also disappear if
|
||||
you use the :ref:`ref-classes-rm-work` feature as described in
|
||||
the ":ref:`dev-manual/disk-space:conserving disk space during builds`"
|
||||
section.
|
||||
|
||||
#. *Generate the Patch:* Once your changes work as expected, you need to
|
||||
use Quilt to generate the final patch that contains all your
|
||||
modifications::
|
||||
|
||||
$ quilt refresh
|
||||
|
||||
At this point, the
|
||||
``my_changes.patch`` file has all your edits made to the ``file1.c``,
|
||||
``file2.c``, and ``file3.c`` files.
|
||||
|
||||
You can find the resulting patch file in the ``patches/``
|
||||
subdirectory of the source (:term:`S`) directory.
|
||||
|
||||
#. *Copy the Patch File:* For simplicity, copy the patch file into a
|
||||
directory named ``files``, which you can create in the same directory
|
||||
that holds the recipe (``.bb``) file or the append (``.bbappend``)
|
||||
file. Placing the patch here guarantees that the OpenEmbedded build
|
||||
system will find the patch. Next, add the patch into the :term:`SRC_URI`
|
||||
of the recipe. Here is an example::
|
||||
|
||||
SRC_URI += "file://my_changes.patch"
|
||||
|
||||
Reference in New Issue
Block a user