summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual/common-tasks.rst
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/dev-manual/common-tasks.rst')
-rw-r--r--documentation/dev-manual/common-tasks.rst241
1 files changed, 108 insertions, 133 deletions
diff --git a/documentation/dev-manual/common-tasks.rst b/documentation/dev-manual/common-tasks.rst
index 3f35dc6361..176025f9e8 100644
--- a/documentation/dev-manual/common-tasks.rst
+++ b/documentation/dev-manual/common-tasks.rst
@@ -155,8 +155,8 @@ Follow these general steps to create your layer without using tools:
5. *Optionally Test for Compatibility:* If you want permission to use
the Yocto Project Compatibility logo with your layer or application
that uses your layer, perform the steps to apply for compatibility.
- See the "`Making Sure Your Layer is Compatible With Yocto
- Project <#making-sure-your-layer-is-compatible-with-yocto-project>`__"
+ See the
+ ":ref:`dev-manual/common-tasks:making sure your layer is compatible with yocto project`"
section for more information.
Following Best Practices When Creating Layers
@@ -282,9 +282,8 @@ following list:
- *Perform Steps to Apply for Yocto Project Compatibility:* If you want
permission to use the Yocto Project Compatibility logo with your
layer or application that uses your layer, perform the steps to apply
- for compatibility. See the "`Making Sure Your Layer is Compatible
- With Yocto
- Project <#making-sure-your-layer-is-compatible-with-yocto-project>`__"
+ for compatibility. See the
+ ":ref:`dev-manual/common-tasks:making sure your layer is compatible with yocto project`"
section for more information.
- *Follow the Layer Naming Convention:* Store custom layers in a Git
@@ -1247,8 +1246,7 @@ the recipe.
your layer such that it can be found.
You can find more information on how layers are structured in the
- "`Understanding and Creating
- Layers <#understanding-and-creating-layers>`__" section.
+ ":ref:`dev-manual/common-tasks:understanding and creating layers`" section.
- *Naming Your Recipe:* When you name your recipe, you need to follow
this naming convention:
@@ -1364,7 +1362,7 @@ extension (e.g. ``.tar``, ``.tar.gz``, ``.tar.bz2``, ``.zip``, and so
forth), are automatically extracted during the
:ref:`ref-tasks-unpack` task. For
another example that specifies these types of files, see the
-"`Autotooled Package <#new-recipe-autotooled-package>`__" section.
+":ref:`dev-manual/common-tasks:autotooled package`" section.
Another way of specifying source is from an SCM. For Git repositories,
you must specify :term:`SRCREV` and
@@ -1445,15 +1443,14 @@ and searches specific directories in a certain order:
``${``\ :term:`BPN`\ ``}``, and
``files``. The directories are assumed to be subdirectories of the
directory in which the recipe or append file resides. For another
-example that specifies these types of files, see the "`Single .c File
-Package (Hello
-World!) <#new-recipe-single-c-file-package-hello-world>`__" section.
+example that specifies these types of files, see the
+":ref:`dev-manual/common-tasks:single .c file package (hello world!)`" section.
The previous example also specifies a patch file. Patch files are files
whose names usually end in ``.patch`` or ``.diff`` but can end with
compressed suffixes such as ``diff.gz`` and ``patch.bz2``, for example.
The build system automatically applies patches as described in the
-"`Patching Code <#new-recipe-patching-code>`__" section.
+":ref:`dev-manual/common-tasks:patching code`" section.
Unpacking Code
--------------
@@ -1543,7 +1540,7 @@ variables:
appropriate files in the ``LIC_FILES_CHKSUM`` variable with incorrect
md5 strings, attempt to build the software, and then note the
resulting error messages that will report the correct md5 strings.
- See the "`Fetching Code <#new-recipe-fetching-code>`__" section for
+ See the ":ref:`dev-manual/common-tasks:fetching code`" section for
additional information.
Here is an example that assumes the software has a ``COPYING`` file:
@@ -1787,8 +1784,8 @@ Here are some common issues that cause failures.
PARALLEL_MAKE = ""
- For information on parallel Makefile issues, see the "`Debugging
- Parallel Make Races <#debugging-parallel-make-races>`__" section.
+ For information on parallel Makefile issues, see the
+ ":ref:`dev-manual/common-tasks:debugging parallel make races`" section.
- *Improper host path usage:* This failure applies to recipes building
for the target or ``nativesdk`` only. The failure occurs when the
@@ -1854,8 +1851,7 @@ the software being built:
``PREFIX=${D}``, ``INSTALLROOT=${D}``, and so forth).
For an example recipe using ``make install``, see the
- "`Makefile-Based Package <#new-recipe-makefile-based-package>`__"
- section.
+ ":ref:`dev-manual/common-tasks:makefile-based package`" section.
- *Manual:* You need to define a ``do_install`` function in your
recipe. The function must first use ``install -d`` to create the
@@ -1990,14 +1986,13 @@ take. The following list describes the process:
``do_install(_append)``, and so forth as needed.
- *Splitting an Application into Multiple Packages*: If you need to
- split an application into several packages, see the "`Splitting an
- Application into Multiple
- Packages <#splitting-an-application-into-multiple-packages>`__"
+ split an application into several packages, see the
+ ":ref:`dev-manual/common-tasks:splitting an application into multiple packages`"
section for an example.
- *Installing a Post-Installation Script*: For an example showing how
- to install a post-installation script, see the "`Post-Installation
- Scripts <#new-recipe-post-installation-scripts>`__" section.
+ to install a post-installation script, see the
+ ":ref:`dev-manual/common-tasks:post-installation scripts`" section.
- *Marking Package Architecture*: Depending on what your recipe is
building and how it is configured, it might be important to mark the
@@ -2172,9 +2167,8 @@ Properly Versioning Pre-Release Recipes
Sometimes the name of a recipe can lead to versioning problems when the
recipe is upgraded to a final release. For example, consider the
``irssi_0.8.16-rc1.bb`` recipe file in the list of example recipes in
-the "`Storing and Naming the
-Recipe <#new-recipe-storing-and-naming-the-recipe>`__" section. This
-recipe is at a release candidate stage (i.e. "rc1"). When the recipe is
+the ":ref:`dev-manual/common-tasks:storing and naming the recipe`" section.
+This recipe is at a release candidate stage (i.e. "rc1"). When the recipe is
released, the recipe filename becomes ``irssi_0.8.16.bb``. The version
change from ``0.8.16-rc1`` to ``0.8.16`` is seen as a decrease by the
build system and package managers, so the resulting packages will not
@@ -2258,8 +2252,7 @@ software you built runs correctly. To accomplish runtime testing, add
the build's output packages to your image and test them on the target.
For information on how to customize your image by adding specific
-packages, see the "`Customizing
-Images <#usingpoky-extend-customimage>`__" section.
+packages, see ":ref:`dev-manual/common-tasks:customizing images`" section.
Examples
--------
@@ -2309,8 +2302,8 @@ directory BitBake uses for the build.
By default, the ``helloworld``, ``helloworld-dbg``, and
``helloworld-dev`` packages are built. For information on how to
-customize the packaging process, see the "`Splitting an Application into
-Multiple Packages <#splitting-an-application-into-multiple-packages>`__"
+customize the packaging process, see the
+":ref:`dev-manual/common-tasks:splitting an application into multiple packages`"
section.
Autotooled Package
@@ -3423,9 +3416,8 @@ Follow these general steps:
1. *Find the Source Code:* Temporary source code used by the
OpenEmbedded build system is kept in the
:term:`Build Directory`. See the
- "`Finding Temporary Source
- Code <#finding-the-temporary-source-code>`__" section to learn how to
- locate the directory that has the temporary source code for a
+ ":ref:`dev-manual/common-tasks:finding temporary source code`" section to
+ learn how to locate the directory that has the temporary source code for a
particular package.
2. *Change Your Working Directory:* You need to be in the directory that
@@ -3994,24 +3986,21 @@ perform to create distributions with smaller root filesystems, achieve
faster boot times, maintain your critical functionality, and avoid
initial RAM disks:
-- `Determine your goals and guiding
- principles. <#goals-and-guiding-principles>`__
+- :ref:`Determine your goals and guiding principles
+ <dev-manual/common-tasks:goals and guiding principles>`
-- `Understand what contributes to your image
- size. <#understand-what-gives-your-image-size>`__
+- :ref:`dev-manual/common-tasks:understand what contributes to your image size`
-- `Reduce the size of the root
- filesystem. <#trim-the-root-filesystem>`__
+- :ref:`Reduce the size of the root filesystem
+ <dev-manual/common-tasks:trim the root filesystem>`
-- `Reduce the size of the kernel. <#trim-the-kernel>`__
+- :ref:`Reduce the size of the kernel <dev-manual/common-tasks:trim the kernel>`
-- `Eliminate packaging
- requirements. <#remove-package-management-requirements>`__
+- :ref:`dev-manual/common-tasks:remove package management requirements`
-- `Look for other ways to minimize
- size. <#look-for-other-ways-to-minimize-size>`__
+- :ref:`dev-manual/common-tasks:look for other ways to minimize size`
-- `Iterate on the process. <#iterate-on-the-process>`__
+- :ref:`dev-manual/common-tasks:iterate on the process`
Goals and Guiding Principles
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -4031,8 +4020,8 @@ very small distributions:
- Leverage the device-specific options.
- Work in a separate layer so that you keep changes isolated. For
- information on how to create layers, see the "`Understanding and
- Creating Layers <#understanding-and-creating-layers>`__" section.
+ information on how to create layers, see the
+ ":ref:`dev-manual/common-tasks:understanding and creating layers`" section.
Understand What Contributes to Your Image Size
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -4576,13 +4565,13 @@ directory:
If you do have recipes that use ``AUTOREV``, you can take steps to
still use the recipes in an offline build. Do the following:
- 1. Use a configuration generated by enabling `build
- history <#maintaining-build-output-quality>`__.
+ 1. Use a configuration generated by enabling :ref:`build
+ history <dev-manual/common-tasks:maintaining build output quality>`.
2. Use the ``buildhistory-collect-srcrevs`` command to collect the
stored ``SRCREV`` values from the build's history. For more
- information on collecting these values, see the "`Build History
- Package Information <#build-history-package-information>`__"
+ information on collecting these values, see the
+ ":ref:`dev-manual/common-tasks:build history package information`"
section.
3. Once you have the correct source revisions, you can modify
@@ -4706,16 +4695,16 @@ Libraries are an integral part of your system. This section describes
some common practices you might find helpful when working with libraries
to build your system:
-- `How to include static library
- files <#including-static-library-files>`__
+- :ref:`How to include static library files
+ <dev-manual/common-tasks:including static library files>`
-- `How to use the Multilib feature to combine multiple versions of
- library files into a single
- image <#combining-multiple-versions-library-files-into-one-image>`__
+- :ref:`How to use the Multilib feature to combine multiple versions of
+ library files into a single image
+ <dev-manual/common-tasks:combining multiple versions of library files into one image>`
-- `How to install multiple versions of the same library in parallel on
- the same
- system <#installing-multiple-versions-of-the-same-library>`__
+- :ref:`How to install multiple versions of the same library in parallel on
+ the same system
+ <dev-manual/common-tasks:installing multiple versions of the same library>`
Including Static Library Files
------------------------------
@@ -5053,7 +5042,7 @@ because the library is produced for the target architecture, but its
code needs to be executed on the build host. This problem is solved with
the OpenEmbedded build system by running the code through QEMU, which
allows precisely that. Unfortunately, QEMU does not always work
-perfectly as mentioned in the "`Known Issues <#known-issues>`__"
+perfectly as mentioned in the ":ref:`dev-manual/common-tasks:known issues`"
section.
Enabling the Generation of Introspection Data
@@ -5225,11 +5214,11 @@ OpenEmbedded build artifacts. Image generation is driven by partitioning
commands contained in an Openembedded kickstart file (``.wks``)
specified either directly on the command line or as one of a selection
of canned kickstart files as shown with the ``wic list images`` command
-in the "`Using an Existing Kickstart
-File <#using-a-provided-kickstart-file>`__" section. When you apply the
-command to a given set of build artifacts, the result is an image or set
-of images that can be directly written onto media and used on a
-particular system.
+in the
+":ref:`dev-manual/common-tasks:generate an image using an existing kickstart file`"
+section. When you apply the command to a given set of build artifacts, the
+result is an image or set of images that can be directly written onto media and
+used on a particular system.
.. note::
@@ -5240,8 +5229,8 @@ particular system.
The ``wic`` command and the infrastructure it is based on is by
definition incomplete. The purpose of the command is to allow the
generation of customized images, and as such, was designed to be
-completely extensible through a plugin interface. See the "`Using the
-Wic PlugIn Interface <#wic-using-the-wic-plugin-interface>`__" section
+completely extensible through a plugin interface. See the
+":ref:`dev-manual/common-tasks:using the wic plugin interface`" section
for information on these plugins.
This section provides some background information on Wic, describes what
@@ -5678,7 +5667,7 @@ Wic Examples
This section provides several examples that show how to use the Wic
utility. All the examples assume the list of requirements in the
-"`Requirements <#wic-requirements>`__" section have been met. The
+":ref:`dev-manual/common-tasks:requirements`" section have been met. The
examples assume the previously generated image is
``core-image-minimal``.
@@ -6093,8 +6082,7 @@ more secure:
- Ensure you remove or disable debugging functionality before producing
the final image. For information on how to do this, see the
- "`Considerations Specific to the OpenEmbedded Build
- System <#considerations-specific-to-the-openembedded-build-system>`__"
+ ":ref:`dev-manual/common-tasks:considerations specific to the openembedded build system`"
section.
- Ensure you have no network services listening that are not needed.
@@ -6275,17 +6263,17 @@ layer. The following steps provide some more detail:
distro-specific configuration files that are included by an
existing recipe, you should add an append file (``.bbappend``) for
those. For general information and recommendations on how to add
- recipes to your layer, see the "`Creating Your Own
- Layer <#creating-your-own-layer>`__" and "`Following Best
- Practices When Creating
- Layers <#best-practices-to-follow-when-creating-layers>`__"
+ recipes to your layer, see the
+ ":ref:`dev-manual/common-tasks:creating your own layer`" and
+ ":ref:`dev-manual/common-tasks:following best practices when creating layers`"
sections.
- Add any image recipes that are specific to your distribution.
- Add a ``psplash`` append file for a branded splash screen. For
- information on append files, see the "`Using .bbappend Files in
- Your Layer <#using-bbappend-files>`__" section.
+ information on append files, see the
+ ":ref:`dev-manual/common-tasks:using .bbappend files in your layer`"
+ section.
- Add any other append files to make custom changes that are
specific to individual recipes.
@@ -6383,29 +6371,22 @@ Working with Packages
This section describes a few tasks that involve packages:
-- `Excluding packages from an
- image <#excluding-packages-from-an-image>`__
+- :ref:`dev-manual/common-tasks:excluding packages from an image`
-- `Incrementing a binary package
- version <#incrementing-a-binary-package-version>`__
+- :ref:`dev-manual/common-tasks:incrementing a package version`
-- `Handling optional module
- packaging <#handling-optional-module-packaging>`__
+- :ref:`dev-manual/common-tasks:handling optional module packaging`
-- `Using runtime package
- management <#using-runtime-package-management>`__
+- :ref:`dev-manual/common-tasks:using runtime package management`
-- `Generating and using signed
- packages <#generating-and-using-signed-packages>`__
+- :ref:`dev-manual/common-tasks:generating and using signed packages`
-- `Setting up and running package test
- (ptest) <#testing-packages-with-ptest>`__
+- :ref:`Setting up and running package test
+ (ptest) <dev-manual/common-tasks:testing packages with ptest>`
-- `Creating node package manager (NPM)
- packages <#creating-node-package-manager-npm-packages>`__
+- :ref:`dev-manual/common-tasks:creating node package manager (npm) packages`
-- `Adding custom metadata to
- packages <#adding-custom-metadata-to-packages>`__
+- :ref:`dev-manual/common-tasks:adding custom metadata to packages`
Excluding Packages from an Image
--------------------------------
@@ -6494,9 +6475,8 @@ much preferred over a manual system. In either system, the main
requirement is that binary package version numbering increases in a
linear fashion and that a number of version components exist that
support that linear progression. For information on how to ensure
-package revisioning remains linear, see the "`Automatically Incrementing
-a Binary Package Revision
-Number <#automatically-incrementing-a-binary-package-revision-number>`__"
+package revisioning remains linear, see the
+":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
section.
The following three sections provide related information on the PR
@@ -6587,8 +6567,8 @@ each building system's ``local.conf`` file:
BUILDHISTORY_COMMIT = "1"
For information on build
-history, see the "`Maintaining Build Output
-Quality <#maintaining-build-output-quality>`__" section.
+history, see the
+":ref:`dev-manual/common-tasks:maintaining build output quality`" section.
.. note::
@@ -8591,8 +8571,8 @@ options exist:
it the same IP address for each reboot.
If you choose "SystemdbootTarget", there are additional requirements
- and considerations. See the "`Selecting
- SystemdbootTarget <#selecting-systemdboottarget>`__" section, which
+ and considerations. See the
+ ":ref:`dev-manual/common-tasks:selecting systemdboottarget`" section, which
follows, for more information.
- *"BeagleBoneTarget":* Choose "BeagleBoneTarget" if you are deploying
@@ -8624,7 +8604,7 @@ Selecting SystemdbootTarget
If you did not set ``TEST_TARGET`` to "SystemdbootTarget", then you do
not need any information in this section. You can skip down to the
-"`Running Tests <#qemu-image-running-tests>`__" section.
+":ref:`dev-manual/common-tasks:running tests`" section.
If you did set ``TEST_TARGET`` to "SystemdbootTarget", you also need to
perform a one-time setup of your master image by doing the following:
@@ -9090,13 +9070,11 @@ situations.
The following list shows the debugging topics in the remainder of this
section:
-- "`Viewing Logs from Failed
- Tasks <#dev-debugging-viewing-logs-from-failed-tasks>`__" describes
+- ":ref:`dev-manual/common-tasks:viewing logs from failed tasks`" describes
how to find and view logs from tasks that failed during the build
process.
-- "`Viewing Variable
- Values <#dev-debugging-viewing-variable-values>`__" describes how to
+- ":ref:`dev-manual/common-tasks:viewing variable values`" describes how to
use the BitBake ``-e`` option to examine variable values after a
recipe has been parsed.
@@ -9105,51 +9083,47 @@ section:
:term:`PKGDATA_DIR` and
display package-related information for built packages.
-- "`Viewing Dependencies Between Recipes and
- Tasks <#dev-viewing-dependencies-between-recipes-and-tasks>`__"
+- ":ref:`dev-manual/common-tasks:viewing dependencies between recipes and tasks`"
describes how to use the BitBake ``-g`` option to display recipe
dependency information used during the build.
-- "`Viewing Task Variable
- Dependencies <#dev-viewing-task-variable-dependencies>`__" describes
+- ":ref:`dev-manual/common-tasks:viewing task variable dependencies`" describes
how to use the ``bitbake-dumpsig`` command in conjunction with key
subdirectories in the
:term:`Build Directory` to determine
variable dependencies.
-- "`Running Specific Tasks <#dev-debugging-taskrunning>`__" describes
+- ":ref:`dev-manual/common-tasks:running specific tasks`" describes
how to use several BitBake options (e.g. ``-c``, ``-C``, and ``-f``)
to run specific tasks in the build chain. It can be useful to run
tasks "out-of-order" when trying isolate build issues.
-- "`General BitBake Problems <#dev-debugging-bitbake>`__" describes how
+- ":ref:`dev-manual/common-tasks:general bitbake problems`" describes how
to use BitBake's ``-D`` debug output option to reveal more about what
BitBake is doing during the build.
-- "`Building with No Dependencies <#dev-debugging-buildfile>`__"
+- ":ref:`dev-manual/common-tasks:building with no dependencies`"
describes how to use the BitBake ``-b`` option to build a recipe
while ignoring dependencies.
-- "`Recipe Logging Mechanisms <#recipe-logging-mechanisms>`__"
+- ":ref:`dev-manual/common-tasks:recipe logging mechanisms`"
describes how to use the many recipe logging functions to produce
debugging output and report errors and warnings.
-- "`Debugging Parallel Make Races <#debugging-parallel-make-races>`__"
+- ":ref:`dev-manual/common-tasks:debugging parallel make races`"
describes how to debug situations where the build consists of several
parts that are run simultaneously and when the output or result of
one part is not ready for use with a different part of the build that
depends on that output.
-- "`Debugging With the GNU Project Debugger (GDB)
- Remotely <#platdev-gdb-remotedebug>`__" describes how to use GDB to
- allow you to examine running programs, which can help you fix
- problems.
+- ":ref:`dev-manual/common-tasks:debugging with the gnu project debugger (gdb) remotely`"
+ describes how to use GDB to allow you to examine running programs, which can
+ help you fix problems.
-- "`Debugging with the GNU Project Debugger (GDB) on the
- Target <#debugging-with-the-gnu-project-debugger-gdb-on-the-target>`__"
+- ":ref:`dev-manual/common-tasks:debugging with the gnu project debugger (gdb) on the target`"
describes how to use GDB directly on target hardware for debugging.
-- "`Other Debugging Tips <#dev-other-debugging-others>`__" describes
+- ":ref:`dev-manual/common-tasks:other debugging tips`" describes
miscellaneous debugging tips that can be useful.
Viewing Logs from Failed Tasks
@@ -9457,8 +9431,8 @@ state (sstate) task can be a useful debugging aid. This information is
available in signature information (``siginfo``) files in
:term:`SSTATE_DIR`. For
information on how to view and interpret information in ``siginfo``
-files, see the "`Viewing Task Variable
-Dependencies <#dev-viewing-task-variable-dependencies>`__" section.
+files, see the
+":ref:`dev-manual/common-tasks:viewing task variable dependencies`" section.
For conceptual information on shared state, see the
":ref:`overview-manual/concepts:shared state`"
@@ -9877,9 +9851,8 @@ Once the local build for "neard" completes, start a ``devshell`` build:
$ bitbake neard -c devshell
-For information on how to use a
-``devshell``, see the "`Using a Development
-Shell <#platdev-appdev-devshell>`__" section.
+For information on how to use a ``devshell``, see the
+":ref:`dev-manual/common-tasks:using a development shell`" section.
In the ``devshell``, do the following:
::
@@ -9921,7 +9894,7 @@ to patch the ``Makefile.am`` file, which is generated from
File Makefile.am added to patch patches/parallelmake.patch
For more information on using Quilt, see the
-"`Using Quilt in Your Workflow <#using-a-quilt-workflow>`__" section.
+":ref:`dev-manual/common-tasks:using quilt in your workflow`" section.
At this point you need to make the edits to ``Makefile.am`` to add the
missing dependency. For our example, you have to add the following line
@@ -9987,9 +9960,9 @@ The build should work without issue.
As with all solved problems, if they originated upstream, you need to
submit the fix for the recipe in OE-Core and upstream so that the
-problem is taken care of at its source. See the "`Submitting a Change to
-the Yocto Project <#how-to-submit-a-change>`__" section for more
-information.
+problem is taken care of at its source. See the
+":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
+section for more information.
Debugging With the GNU Project Debugger (GDB) Remotely
------------------------------------------------------
@@ -10363,8 +10336,9 @@ Here are some other tips that you might find useful:
:yocto_bugs:`Bugzilla <>`. For information on
how to submit a bug against the Yocto Project, see the Yocto Project
Bugzilla :yocto_wiki:`wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
- and the "`Submitting a Defect Against the Yocto
- Project <#submitting-a-defect-against-the-yocto-project>`__" section.
+ and the
+ ":ref:`dev-manual/common-tasks:submitting a defect against the yocto project`"
+ section.
.. note::
@@ -10619,8 +10593,9 @@ Using Email to Submit a Patch
Depending on the components changed, you need to submit the email to a
specific mailing list. For some guidance on which mailing list to use,
-see the `list <#figuring-out-the-mailing-list-to-use>`__ at the
-beginning of this section. For a description of all the available
+see the
+:ref:`list <dev-manual/common-tasks:submitting a change to the yocto project>`
+at the beginning of this section. For a description of all the available
mailing lists, see the ":ref:`Mailing Lists <resources-mailinglist>`" section in the
Yocto Project Reference Manual.
@@ -11034,7 +11009,7 @@ file. For example, to enable the
``poky/meta/recipes-multimedia/gstreamer/gst-plugins-ugly`` package, you
could add either the string "commercial_gst-plugins-ugly" or the more
general string "commercial" to ``LICENSE_FLAGS_WHITELIST``. See the
-"`License Flag Matching <#license-flag-matching>`__" section for a full
+":ref:`dev-manual/common-tasks:license flag matching`" section for a full
explanation of how ``LICENSE_FLAGS`` matching works. Here is the
example:
::