From 4a1ea28ce9103c4f243669cbb7250d33eb97d676 Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Mon, 26 Jan 2015 07:12:53 -0800 Subject: [PATCH] documentation: First draft devtools. Completed draft of the new devtool material. This commit affects some linking and figures across the YP doc set. * Added the build-workspace-directory.png file to both the dev-manual and the mega-manual. * Updated the Makefile to include the new figure in the TARFILE for dev-manual and mega-manual. * Re-did the section organization to pull the quilt and finding source file out of the "Modifying Source Files" section. (From yocto-docs rev: 4585b9fbb1636ae3c65e2e3ad2d1d6baca636e59) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- documentation/Makefile | 5 +- .../dev-manual/dev-manual-common-tasks.xml | 8 +- documentation/dev-manual/dev-manual-model.xml | 956 +++++++++++++----- .../figures/build-workspace-directory.png | Bin 0 -> 24458 bytes documentation/kernel-dev/kernel-dev-intro.xml | 2 +- .../figures/build-workspace-directory.png | Bin 0 -> 24458 bytes documentation/ref-manual/ref-structure.xml | 2 +- 7 files changed, 715 insertions(+), 258 deletions(-) create mode 100644 documentation/dev-manual/figures/build-workspace-directory.png create mode 100644 documentation/mega-manual/figures/build-workspace-directory.png diff --git a/documentation/Makefile b/documentation/Makefile index 873da361c4..8d51bd7df3 100644 --- a/documentation/Makefile +++ b/documentation/Makefile @@ -127,7 +127,7 @@ TARFILES = dev-style.css dev-manual.html \ figures/index-downloads.png figures/kernel-dev-flow.png \ figures/kernel-overview-1.png figures/kernel-overview-2-generic.png \ figures/source-repos.png figures/yp-download.png \ - figures/recipe-workflow.png \ + figures/recipe-workflow.png figures/build-workspace-directory.png \ eclipse endif @@ -234,7 +234,8 @@ TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png \ figures/configuration-compile-autoreconf.png \ figures/analysis-for-package-splitting.png \ figures/image-generation.png \ - figures/sdk-generation.png figures/recipe-workflow.png + figures/sdk-generation.png figures/recipe-workflow.png \ + figures/build-workspace-directory.png endif MANUALS = $(DOC)/$(DOC).html diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index e5526ef65e..b8669f8daa 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml @@ -4838,7 +4838,7 @@ ${S}/linux - See the "Finding the Temporary Source Code" + See the "Finding Temporary Source Code" section and the S variable for more information about where source is kept during a build. @@ -4857,8 +4857,8 @@ Two methods exist by which you can create the patch: - Git workflow and - Quilt workflow. + devtool and + Quilt. For kernel patches, the Git workflow is more appropriate. This section assumes the Git workflow and shows the steps specific to this example. @@ -9104,7 +9104,7 @@ File Makefile.am added to patch patches/parallelmake.patch For more information on using Quilt, see the - "Using a Quilt Workflow" + "Using Quilt in Your Workflow" section. diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index 59d6adb3fc..15b815d417 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml @@ -1242,7 +1242,7 @@ aclocal, autoconf, autoheader, - automake --a, and + automake ‐‐a, and ./configure. Click on the "Console" tab beneath your source code to see the results of reconfiguring your project. @@ -1668,28 +1668,716 @@ -
- Modifying Temporary Source Code +
+ Modifying Source Code - You might - find it helpful during development to modify the temporary source code used by recipes - to build packages. - For example, suppose you are developing a patch and you need to experiment a bit - to figure out your solution. - After you have initially built the package, you can iteratively tweak the - source code, which is located in the - Build Directory, and then - you can force a re-compile and quickly test your altered code. - Once you settle on a solution, you can then preserve your changes in the form of - patches. - You can accomplish these steps all within either a - Quilt or - Git workflow. + A common development workflow consists of modifying project source + files that are external to the Yocto Project and then integrating + that project's build output into an image built using the Yocto + Project. + Given this scenario, development engineers typically want to stick + to their familiar project development tools and methods, which allows + them to just focus on the project. + + Several workflows exist that allow you to develop, build, and test + code that is going to be integrated into an image built using the + Yocto Project. + This section describes two: + + devtool: + A set of tools and + enhancements put together by the Yocto Project team that + makes it easier for you to modify code that is external to + the Yocto Project. + Section + "Using devtool in Your Workflow" + describes this workflow. + If you want more information that showcases the workflow, click + here + for an excellent presentation by Trevor Woerner that + provides detailed background information and a complete + working tutorial. + + Quilt: + A powerful tool that allows you to capture source + code changes without having a clean source tree. + While Quilt is not the preferred workflow of the two, this + section includes it for users that are committed to using + the tool. + See the + "Using Quilt in Your Workflow" + section for more information. + + + + +
+ Using <filename>devtool</filename> in Your Workflow + + + As mentioned earlier, devtool helps + you easily develop projects whose build output must be part of + an image built using the Yocto Project. + The remainder of this section presents the workflow you would + use that includes devtool. + + The workflow considers the entire build process for the + image and not just modification of the external source + code. + + + +
+ Establish the Reference Image + + + Local repositories for both the Yocto Project and your + project must exist in addition to the image built by + the OpenEmbedded build system. + The steps to clone the poky Git + repository, build out an image, and test it using QEMU + are well documented as follows: + + + For information on how to set up a local copy of the + poky repository and on how to + build a Yocto Project image, see the + "Building an Image" + section in the Yocto Project Quick Start. + + + For information on how to test an image using QEMU, see + the + "Using the Quick EMUlator (QEMU)" + section. + + + + + + Before you start making modifications to your project's + source code, you should be sure you have the appropriate + local repositories and have a base image built using + BitBake that you can run on QEMU. + +
+ +
+ Update Your External Source + + + Part of the development flow using + devtool of course involves updating + your source files. + Several opportunities exist in the workflow to extract and + work on the files. + For now, just realize that you need to be able to have + access to and edit files in your layer. + One obvious solution is to initially extract the code into its + own layer in preparation for modification. + + + + Another option is to use the devtool + command. + devtool makes use of a + "workspace" layer where much of the transitional work + occurs, which is needed for setting up Metadata used by the + OpenEmbedded build system that lets you build your software. + Options exist using devtool that + enable you to use the tool to extract source code. + +
+ +
+ Use <filename>dev-tool</filename> to Integrate Your Code with the Image + + + devtool automatically + generates the needed Metadata that allows the OpenEmbedded + build system to build your code into the image. + Use the following command form: + + $ devtool add your-project-name path-to-source/your-project-name + + Running devtool modifies the + bblayers.conf used to build the + image in the Yocto Project. + For more information on the bblayers.conf, + see the + "BSP Layers" + section in the Yocto Project Board Support Package (BSP) Developer's Guide. + + + + Running devtool adds a new workspace + layer to the bblayers.conf file that + is based on your project's location: + + path-to-source/build-directory/workspace-layer + + By default, the name of the workspace layer is "workplace". + + + + For details on the workspace layer created in the + build-directory, + see the + "Adding a New Recipe to the Workspace Layer" + section. + + + + Of course, each layer must have a + layer.conf configuration file. + devtool also creates this configuration + file: + + $ cat workspace/conf/layer.conf + # ### workspace layer auto­generated by devtool ### + BBPATH =. "${LAYERDIR}:" + BBFILES += "${LAYERDIR}/recipes/*/*.bb \ + ${LAYERDIR}/appends/*.bbappend" + BBFILE_COLLECTIONS += "workspacelayer" + BBFILE_PATTERN_workspacelayer = "^${LAYERDIR}/" + BBFILE_PATTERN_IGNORE_EMPTY_workspacelayer = "1" + BBFILE_PRIORITY_workspacelayer = "99" + + + + + Running devtool also automatically + generates your recipe: + + $ cat workspace/recipes/your-project-name/your-project-name.bb + # Recipe created by recipetool + # This is the basis of a recipe and may need further editing in order to be fully functional. + # (Feel free to remove these comments when editing.) + # + # Unable to find any files that looked like license statements. Check the accompanying + # documentation and source headers and set LICENSE and LIC_FILES_CHKSUM accordingly. + LICENSE = "CLOSED" + LIC_FILES_CHKSUM = "" + + # No information for SRC_URI yet (only an external source tree was + # specified) + SRC_URI = "" + + DEPENDS = "libx11" + # NOTE: if this software is not capable of being built in a separate build directory + # from the source, you should replace autotools with autotools­-brokensep in the + # inherit line + inherit autotools + + # Specify any options you want to pass to the configure script using EXTRA_OECONF: + EXTRA_OECONF = "" + + + + + Lastly, the devtool creates the + .bbappend file: + + $ cat workspace/appends/your-project-name.bbappend + inherit externalsrc + EXTERNALSRC = "/path-to-source/your-project-name" + + # initial_rev: commit-ID + + +
+ +
+ Build Your Project + + + You can use BitBake or devtool to build + your modified project. + + + + To use BitBake, use the following: + + $ bitbake your-project-name + + To use devtool, run the tool with the + build option: + + $ devtool build your-project-name + + +
+ +
+ Build the Image + + + The final step before testing is to rebuild the base image + with your project changes as part of the image. + Simply run BitBake again on your image. + Here is an example that assumes + MACHINE + is set to "qemux86": + + $ bitbake qemux86 image + + +
+ +
+ Testing the Image + + + Once you have the image, you can test it using QEMU. + Here is an example assuming "qemux86": + + $ runqemu qemux86 image + + For information on how to test an image using QEMU, see the + "Using the Quick EMUlator (QEMU)" + section. + +
+
+ +
+ <filename>devtool</filename> Quick Reference + + + devtool has more functionality than simply + adding a new recipe and the supporting Metadata to a temporary + workspace layer. + This section provides a short reference on + devtool for most of the commands. + + +
+ Getting Help + + + The easiest way to get help with the + devtool command is using the + ‐‐help option: + + $ devtool ‐‐help + usage: devtool [-h] [‐‐basepath BASEPATH] [-d] [-q] + [‐‐color {auto,always,never}] + {create-workspace,deploy-target,undeploy-target,add,modify,extract,update-recipe,status,build,reset} + ... + + OpenEmbedded development tool + + positional arguments: + {create-workspace,deploy-target,undeploy-target,add,modify,extract,update-recipe,status,build,reset} + create-workspace Set up a workspace + deploy-target Deploy recipe output files to live target machine + undeploy-target Undeploy recipe output files in live target machine + add Add a new recipe + modify Modify the source for an existing recipe + extract Extract the source for an existing recipe + update-recipe Apply changes from external source tree to recipe + status Show status + build Build recipe + reset Remove a recipe from your workspace + + optional arguments: + -h, ‐‐help show this help message and exit + ‐‐basepath BASEPATH Base directory of SDK / build directory + -d, ‐‐debug Enable debug output + -q, ‐‐quiet Print only errors + ‐‐color {auto,always,never} + Colorize output + + Use devtool <command> ‐‐help to get help on a specific command + + + + + As directed in the general help output, you can get more + syntax on a specific command by providing the command + name and using ‐‐help: + + $ devtool add ‐‐help + usage: devtool add [-h] [‐‐version VERSION] recipename srctree + + positional arguments: + recipename Name for new recipe to add + srctree Path to external source tree + + optional arguments: + -h, ‐‐help show this help message and exit + ‐‐version VERSION, -V VERSION + + +
+ +
+ Adding a New Recipe to the Workspace Layer + + + Use the add command to add a new recipe + to the workspace layer. + The recipe you add should not exist - + devtool creates it for you. + The source files the recipe uses should exist in an external + area. + + + + The following example creates and adds a new recipe named + jackson-2.0 to the workspace layer. + The source code built by the recipes resides in + /home/scottrif/sources/jackson: + + $ devtool add jackson-2.0 /home/scottrif/sources/jackson + + + For complete syntax, use the + devtool add ‐‐help command. + + + + + If you add a recipe and the workspace layer does not exist, + the command creates the layer and populates it as follows: + + + + + + + + + README - Provides information on what is in workspace layer and how to + manage it. + + appends - A directory that contains *.bbappend files. + + conf - A configuration directory that contains the layer.conf file. + + recipes - A directory containing recipes. This directory contains a + folder for each directory added whose name matches that of the + added recipe. devtool places the recipe.bb file + within that sub-directory. + + + + + Running devtool add when the + workspace layer exists causes the tool to add the recipe + and append files into the existing workspace layer. + +
+ +
+ Creating the Workspace Layer + + + Use the create-workspace command to + create a new workspace layer in your + Build Directory. + When you create a new workspace layer, it is populated with the + README file and the + conf directory only. + + + + The following example creates a new workspace layer in your + current working and by default names the workspace layer + "workspace": + + $ devtool create-workspace + + + For complete syntax, use the + devtool create-workspace ‐‐help command. + + + + + You can create a workspace layer anywhere by supplying + a pathname with the command. + The following command creates a new workspace layer named + "new-workspace": + + $ devtool create-workspace /home/scottrif/new-workspace + + +
+ +
+ Modifying a Recipe + + + Use the modify command to configure + an external recipe in the workspace layer. + This command is very similar to the + add + command except that it does not physically create the + recipe in the workspace layer because the recipe already + exists in an external layer. + + + + The modify command provides options + that allow you to extract the source and provide a + development branch name where you can do your work. + You can use the following command to checkout the source + files: + + $ devtool modify -x recipe path-to-source + + Using the above command form, the default development branch + would be "devtool". + + + + If you want to name a development branch, use the + -b option with the + -x option: + + $ devtool modify -x -b branch recipe path-to-source + + + For complete syntax, use the + devtool modify ‐‐help command. + + +
+ +
+ Resetting a Recipe + + + Use the reset command to remove a + recipe and its configuration (e.g. the corresponding + .bbappend file) from the workspace layer. + Realize that this command deletes the recipe and and the + append file. + The command does not physically move them for you. + Consequently, you must be sure to physically relocate your + updated recipe and the append file outside of the workspace + layer before running the reset command. + + For complete syntax, use the + devtool reset ‐‐help command. + + +
+ +
+ Updating a Recipe + + + Use the update-recipe command to cause + devtool to update your recipe with patches + that reflect changes you make to the source files. + For example, if you know you are going to work on some + code, you could first use the + modify + command to extract the code and set up the workspace. + After which, you could modify, compile, and test the code + in its own layer to which it was extracted. + When you are satisfied with the results you can then + run the update-recipe to create the + patches and update the recipe in the external layer: + + $ devtool update-recipe recipe + + + For complete syntax, use the + devtool update-recipe ‐‐help command. + + +
+ +
+ Building Your Software + + + Use the build command to cause the + OpenEmbedded build system to build your software based + on the recipe file: + + $ devtool build recipe + + + For complete syntax, use the + devtool update-recipe ‐‐help command. + + Building your software using build is + identical to using BitBake to build the software. + +
+ +
+ Deploying Your Software on the Target Machine + + + Use the deploy-target command to deploy + the recipe's build output to the the live target machine: + + $ devtool deploy-target recipe target + + The target is the actual + target running on an SSH server (i.e. + user@hostname[:destdir]. + + For complete syntax, use the + devtool deploy-target ‐‐help command. + + +
+ +
+ Removing Your Software from the Target Machine + + + Use the undeploy-target command to remove + deployed build output from the target machine. + For undeploy-target command to work, + you must have previously used the + deploy-target + command. + + $ devtool undeploy-target recipe target + + The target is the actual + target running on an SSH server (i.e. + user@hostname. + + For complete syntax, use the + devtool undeploy-target ‐‐help command. + + +
+
+ +
+ Using Quilt in Your Workflow + + + 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 temporary source code, + test changes, and then preserve the changes in the form of a patch all using Quilt. + + + + Follow these general steps: + + Find the Source Code: + The temporary source code used by the OpenEmbedded build system is kept in the + Build Directory. + See the + "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 + 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 temporary source code to the files you added + to the patch. + Test Your Changes: + Once you have modified the source code, the easiest way to + your changes is by calling the + do_compile task as shown in the + following example: + + $ bitbake -c compile -f name_of_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. + All the modifications you make to the temporary source code + disappear once you run the + do_clean + or + do_cleanall + tasks using BitBake (i.e. + bitbake -c clean name_of_package + and + bitbake -c cleanall name_of_package). + Modifications will also disappear if you use the rm_work + feature as described in the + "Building an Image" + section of the Yocto Project Quick Start. + + 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 (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 + SRC_URI + of the recipe. + Here is an example: + + SRC_URI += "file://my_changes.patch" + + Increment the Recipe Revision Number: + Finally, don't forget to 'bump' the + PR + value in the recipe since the resulting packages have changed. + + +
+
- Finding the Temporary Source Code + Finding Temporary Source Code + + + You might + find it helpful during development to modify the temporary source code used by recipes + to build packages. + For example, suppose you are developing a patch and you need to experiment a bit + to figure out your solution. + After you have initially built the package, you can iteratively tweak the + source code, which is located in the + Build Directory, and then + you can force a re-compile and quickly test your altered code. + Once you settle on a solution, you can then preserve your changes in the form of + patches. + You can accomplish these steps all within either a + Quilt or + Git workflow. + During a build, the unpacked temporary source code used by recipes @@ -1763,235 +2451,6 @@ and preserve the changes in the form of patches.
- -
- Using a Quilt Workflow - - - 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 temporary source code, - test changes, and then preserve the changes in the form of a patch all using Quilt. - - - - Follow these general steps: - - Find the Source Code: - The temporary source code used by the OpenEmbedded build system is kept in the - Build Directory. - See the - "Finding the 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 - 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 temporary source code to the files you added - to the patch. - Test Your Changes: - Once you have modified the source code, the easiest way to - your changes is by calling the - do_compile task as shown in the - following example: - - $ bitbake -c compile -f name_of_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. - All the modifications you make to the temporary source code - disappear once you run the - do_clean - or - do_cleanall - tasks using BitBake (i.e. - bitbake -c clean name_of_package - and - bitbake -c cleanall name_of_package). - Modifications will also disappear if you use the rm_work - feature as described in the - "Building an Image" - section of the Yocto Project Quick Start. - - 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 (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 - SRC_URI - of the recipe. - Here is an example: - - SRC_URI += "file://my_changes.patch" - - Increment the Recipe Revision Number: - Finally, don't forget to 'bump' the - PR - value in the recipe since the resulting packages have changed. - -
- -
- Using a Git Workflow - - Git is an even more 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 temporary source code, - test changes, and then preserve the changes in the form of a patch all using Git. - For general information on Git as it is used in the Yocto Project, see the - "Git" section. - - - - This workflow uses Git only for its ability to manage local changes to the source code - and produce patches independent of any version control system used with the Yocto Project. - - - - Follow these general steps: - - Find the Source Code: - The temporary source code used by the OpenEmbedded build system is kept in the - Build Directory. - See the - "Finding the 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 - S - variable. - If needed, initialize a Git Repository: - If the recipe you are working with does not use a Git fetcher, - you need to set up a Git repository as follows: - - $ git init - $ git add * - $ git commit -m "initial revision" - - The above Git commands initialize a Git repository that is based on the - files in your current working directory, stage all the files, and commit - the files. - At this point, your Git repository is aware of all the source code files. - Any edits you now make to files can be committed later and will be tracked by - Git. - Edit the Files: - Make your changes to the temporary source code. - Test Your Changes: - Once you have modified the source code, the easiest way - to test your changes is by calling the - do_compile task as shown in the - following example: - - $ bitbake -c compile -f name_of_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. - All the modifications you make to the temporary source code - disappear once you -c clean, -c cleansstate, - or -c cleanall with BitBake for the package. - Modifications will also disappear if you use the rm_work - feature as described in the - "Building an Image" - section of the Yocto Project Quick Start. - - See the List of Files You Changed: - Use the git status command to see what files you have actually edited. - The ability to have Git track the files you have changed is an advantage that this - workflow has over the Quilt workflow. - Here is the Git command to list your changed files: - - $ git status - - Stage the Modified Files: - Use the git add command to stage the changed files so they - can be committed as follows: - - $ git add file1.c file2.c file3.c - - Commit the Staged Files and View Your Changes: - Use the git commit command to commit the changes to the - local repository. - Once you have committed the files, you can use the git log - command to see your changes: - - $ git commit -m "commit-summary-message" - $ git log - - The name of the patch file created in the next step is based on your - commit-summary-message. - Generate the Patch: - Once the changes are committed, use the git format-patch - command to generate a patch file: - - $ git format-patch -1 - - Specifying "-1" causes Git to generate the - patch file for the most recent commit. - At this point, the 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 current directory and it - is named according to the git commit summary line. - The patch file ends with .patch. - 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 - SRC_URI - of the recipe. - Here is an example: - - SRC_URI += "file://0001-commit-summary-message.patch" - - Increment the Recipe Revision Number: - Finally, don't forget to 'bump' the - PR - value in the recipe since the resulting packages have changed. - - -
@@ -2109,6 +2568,3 @@
- diff --git a/documentation/dev-manual/figures/build-workspace-directory.png b/documentation/dev-manual/figures/build-workspace-directory.png new file mode 100644 index 0000000000000000000000000000000000000000..f561f8fee6f5927067d86c882e020e75cc96c657 GIT binary patch literal 24458 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

9% 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 literal 0 HcmV?d00001 diff --git a/documentation/kernel-dev/kernel-dev-intro.xml b/documentation/kernel-dev/kernel-dev-intro.xml index 38ef36de5a..1e5043c4d8 100644 --- a/documentation/kernel-dev/kernel-dev-intro.xml +++ b/documentation/kernel-dev/kernel-dev-intro.xml @@ -119,7 +119,7 @@ Yocto Project Quick Start - The "Modifying Temporary Source Code" + The "Modifying Source Code" section in the Yocto Project Development Manual The "Understanding and Creating Layers" section diff --git a/documentation/mega-manual/figures/build-workspace-directory.png b/documentation/mega-manual/figures/build-workspace-directory.png new file mode 100644 index 0000000000000000000000000000000000000000..f561f8fee6f5927067d86c882e020e75cc96c657 GIT binary patch literal 24458 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

9% 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 literal 0 HcmV?d00001 diff --git a/documentation/ref-manual/ref-structure.xml b/documentation/ref-manual/ref-structure.xml index 1100acad50..8976097d36 100644 --- a/documentation/ref-manual/ref-structure.xml +++ b/documentation/ref-manual/ref-structure.xml @@ -829,7 +829,7 @@ Within this directory, the source is unpacked to linux-qemux86-standard-build and then patched by Quilt. (See the - "Using a Quilt Flow" + "Using Quilt in Your Workflow" section in the Yocto Project Development Manual for more information.) Within the linux-qemux86-standard-build directory, standard Quilt directories linux-3.0/patches