diff options
| author | Scott Rifenbark <srifenbark@gmail.com> | 2017-07-03 09:32:19 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-07-12 00:28:15 +0100 |
| commit | 81add6e460ec9802e78e3bcb89637b2cfdd41ce2 (patch) | |
| tree | c1f02048ccb00b83ed9a894a4d38e2901cb64d8b /documentation/dev-manual/dev-manual-model.xml | |
| parent | b171aea8369c38231c5e9c70f78c9403173e7cb6 (diff) | |
| download | poky-81add6e460ec9802e78e3bcb89637b2cfdd41ce2.tar.gz | |
dev-manual: Moved "Using Quilt in Your Workflow" to tasks
Fixes [YOCTO #11630]
The section on useing Quilt can be a stand-alone task. I moved
it to the "Common Tasks" chapter.
(From yocto-docs rev: bb84b88fc8fc7f82e7bbe580d408ae7880f38d8b)
Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual/dev-manual-model.xml')
| -rw-r--r-- | documentation/dev-manual/dev-manual-model.xml | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index 8f0e5b1d9b..173871a843 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml | |||
| @@ -716,116 +716,6 @@ | |||
| 716 | </para> | 716 | </para> |
| 717 | </section> | 717 | </section> |
| 718 | </section> | 718 | </section> |
| 719 | |||
| 720 | <section id="using-a-quilt-workflow"> | ||
| 721 | <title>Using Quilt in Your Workflow</title> | ||
| 722 | |||
| 723 | <para> | ||
| 724 | <ulink url='http://savannah.nongnu.org/projects/quilt'>Quilt</ulink> | ||
| 725 | is a powerful tool that allows you to capture source code changes | ||
| 726 | without having a clean source tree. | ||
| 727 | This section outlines the typical workflow you can use to modify | ||
| 728 | source code, test changes, and then preserve the changes in the | ||
| 729 | form of a patch all using Quilt. | ||
| 730 | <note><title>Tip</title> | ||
| 731 | With regard to preserving changes to source files if you | ||
| 732 | clean a recipe or have <filename>rm_work</filename> enabled, | ||
| 733 | the workflow described in the | ||
| 734 | "<link linkend='using-devtool-in-your-workflow'>Using <filename>devtool</filename> in Your Workflow</link>" | ||
| 735 | section is a safer development flow than the flow that | ||
| 736 | uses Quilt. | ||
| 737 | </note> | ||
| 738 | </para> | ||
| 739 | |||
| 740 | <para> | ||
| 741 | Follow these general steps: | ||
| 742 | <orderedlist> | ||
| 743 | <listitem><para><emphasis>Find the Source Code:</emphasis> | ||
| 744 | Temporary source code used by the OpenEmbedded build system | ||
| 745 | is kept in the | ||
| 746 | <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>. | ||
| 747 | See the | ||
| 748 | "<link linkend='finding-the-temporary-source-code'>Finding Temporary Source Code</link>" | ||
| 749 | section to learn how to locate the directory that has the | ||
| 750 | temporary source code for a particular package. | ||
| 751 | </para></listitem> | ||
| 752 | <listitem><para><emphasis>Change Your Working Directory:</emphasis> | ||
| 753 | You need to be in the directory that has the temporary source code. | ||
| 754 | That directory is defined by the | ||
| 755 | <ulink url='&YOCTO_DOCS_REF_URL;#var-S'><filename>S</filename></ulink> | ||
| 756 | variable.</para></listitem> | ||
| 757 | <listitem><para><emphasis>Create a New Patch:</emphasis> | ||
| 758 | Before modifying source code, you need to create a new patch. | ||
| 759 | To create a new patch file, use <filename>quilt new</filename> as below: | ||
| 760 | <literallayout class='monospaced'> | ||
| 761 | $ quilt new my_changes.patch | ||
| 762 | </literallayout></para></listitem> | ||
| 763 | <listitem><para><emphasis>Notify Quilt and Add Files:</emphasis> | ||
| 764 | After creating the patch, you need to notify Quilt about the files | ||
| 765 | you plan to edit. | ||
| 766 | You notify Quilt by adding the files to the patch you just created: | ||
| 767 | <literallayout class='monospaced'> | ||
| 768 | $ quilt add file1.c file2.c file3.c | ||
| 769 | </literallayout> | ||
| 770 | </para></listitem> | ||
| 771 | <listitem><para><emphasis>Edit the Files:</emphasis> | ||
| 772 | Make your changes in the source code to the files you added | ||
| 773 | to the patch. | ||
| 774 | </para></listitem> | ||
| 775 | <listitem><para><emphasis>Test Your Changes:</emphasis> | ||
| 776 | Once you have modified the source code, the easiest way to | ||
| 777 | test your changes is by calling the | ||
| 778 | <filename>do_compile</filename> task as shown in the | ||
| 779 | following example: | ||
| 780 | <literallayout class='monospaced'> | ||
| 781 | $ bitbake -c compile -f <replaceable>package</replaceable> | ||
| 782 | </literallayout> | ||
| 783 | The <filename>-f</filename> or <filename>--force</filename> | ||
| 784 | option forces the specified task to execute. | ||
| 785 | If you find problems with your code, you can just keep editing and | ||
| 786 | re-testing iteratively until things work as expected. | ||
| 787 | <note>All the modifications you make to the temporary source code | ||
| 788 | disappear once you run the | ||
| 789 | <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-clean'><filename>do_clean</filename></ulink> | ||
| 790 | or | ||
| 791 | <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-cleanall'><filename>do_cleanall</filename></ulink> | ||
| 792 | tasks using BitBake (i.e. | ||
| 793 | <filename>bitbake -c clean <replaceable>package</replaceable></filename> | ||
| 794 | and | ||
| 795 | <filename>bitbake -c cleanall <replaceable>package</replaceable></filename>). | ||
| 796 | Modifications will also disappear if you use the <filename>rm_work</filename> | ||
| 797 | feature as described in the | ||
| 798 | "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>" | ||
| 799 | section of the Yocto Project Quick Start. | ||
| 800 | </note></para></listitem> | ||
| 801 | <listitem><para><emphasis>Generate the Patch:</emphasis> | ||
| 802 | Once your changes work as expected, you need to use Quilt to generate the final patch that | ||
| 803 | contains all your modifications. | ||
| 804 | <literallayout class='monospaced'> | ||
| 805 | $ quilt refresh | ||
| 806 | </literallayout> | ||
| 807 | At this point, the <filename>my_changes.patch</filename> file has all your edits made | ||
| 808 | to the <filename>file1.c</filename>, <filename>file2.c</filename>, and | ||
| 809 | <filename>file3.c</filename> files.</para> | ||
| 810 | <para>You can find the resulting patch file in the <filename>patches/</filename> | ||
| 811 | subdirectory of the source (<filename>S</filename>) directory.</para></listitem> | ||
| 812 | <listitem><para><emphasis>Copy the Patch File:</emphasis> | ||
| 813 | For simplicity, copy the patch file into a directory named <filename>files</filename>, | ||
| 814 | which you can create in the same directory that holds the recipe | ||
| 815 | (<filename>.bb</filename>) file or the | ||
| 816 | append (<filename>.bbappend</filename>) file. | ||
| 817 | Placing the patch here guarantees that the OpenEmbedded build system will find | ||
| 818 | the patch. | ||
| 819 | Next, add the patch into the | ||
| 820 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename> | ||
| 821 | of the recipe. | ||
| 822 | Here is an example: | ||
| 823 | <literallayout class='monospaced'> | ||
| 824 | SRC_URI += "file://my_changes.patch" | ||
| 825 | </literallayout></para></listitem> | ||
| 826 | </orderedlist> | ||
| 827 | </para> | ||
| 828 | </section> | ||
| 829 | </section> | 719 | </section> |
| 830 | 720 | ||
| 831 | <section id="platdev-appdev-devshell"> | 721 | <section id="platdev-appdev-devshell"> |
