diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
index 74a3eb8..fb1b353 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
@@ -29,7 +29,7 @@
 
 .. glossary::
 
-   :term:`ASSUME_PROVIDED`
+   ASSUME_PROVIDED
       Lists recipe names (:term:`PN` values) BitBake does not
       attempt to build. Instead, BitBake assumes these recipes have already
       been built.
@@ -39,11 +39,11 @@
       when specified allows for the Git binary from the host to be used
       rather than building ``git-native``.
 
-   :term:`B`
+   B
       The directory in which BitBake executes functions during a recipe's
       build process.
 
-   :term:`BB_ALLOWED_NETWORKS`
+   BB_ALLOWED_NETWORKS
       Specifies a space-delimited list of hosts that the fetcher is allowed
       to use to obtain the required source code. Following are
       considerations surrounding this variable:
@@ -83,15 +83,15 @@
       fetcher does not attempt to use the host listed in ``SRC_URI`` after
       a successful fetch from the ``PREMIRRORS`` occurs.
 
-   :term:`BB_CONSOLELOG`
+   BB_CONSOLELOG
       Specifies the path to a log file into which BitBake's user interface
       writes output during the build.
 
-   :term:`BB_CURRENTTASK`
+   BB_CURRENTTASK
       Contains the name of the currently running task. The name does not
       include the ``do_`` prefix.
 
-   :term:`BB_DANGLINGAPPENDS_WARNONLY`
+   BB_DANGLINGAPPENDS_WARNONLY
       Defines how BitBake handles situations where an append file
       (``.bbappend``) has no corresponding recipe file (``.bb``). This
       condition often occurs when layers get out of sync (e.g. ``oe-core``
@@ -103,12 +103,12 @@
       given something is out of sync. It is important to realize when your
       changes are no longer being applied.
 
-   :term:`BB_DEFAULT_TASK`
+   BB_DEFAULT_TASK
       The default task to use when none is specified (e.g. with the ``-c``
       command line option). The task name specified should not include the
       ``do_`` prefix.
 
-   :term:`BB_DISKMON_DIRS`
+   BB_DISKMON_DIRS
       Monitors disk space and available inodes during the build and allows
       you to control the build based on these parameters.
 
@@ -175,7 +175,7 @@
       free inodes in the ``${TMPDIR}`` directory drops below 100 Kbytes. No
       disk space monitoring for the directory itself occurs in this case.
 
-   :term:`BB_DISKMON_WARNINTERVAL`
+   BB_DISKMON_WARNINTERVAL
       Defines the disk space and free inode warning intervals.
 
       If you are going to use the ``BB_DISKMON_WARNINTERVAL`` variable, you
@@ -218,7 +218,7 @@
       based on the interval occur each time a respective interval is
       reached beyond the initial warning (i.e. 1 Gbytes and 100 Kbytes).
 
-   :term:`BB_ENV_WHITELIST`
+   BB_ENV_WHITELIST
       Specifies the internal whitelist of variables to allow through from
       the external environment into BitBake's datastore. If the value of
       this variable is not specified (which is the default), the following
@@ -230,7 +230,7 @@
          You must set this variable in the external environment in order
          for it to work.
 
-   :term:`BB_ENV_EXTRAWHITE`
+   BB_ENV_EXTRAWHITE
       Specifies an additional set of variables to allow through (whitelist)
       from the external environment into BitBake's datastore. This list of
       variables are on top of the internal list set in
@@ -241,19 +241,19 @@
          You must set this variable in the external environment in order
          for it to work.
 
-   :term:`BB_FETCH_PREMIRRORONLY`
+   BB_FETCH_PREMIRRORONLY
       When set to "1", causes BitBake's fetcher module to only search
       :term:`PREMIRRORS` for files. BitBake will not
       search the main :term:`SRC_URI` or
       :term:`MIRRORS`.
 
-   :term:`BB_FILENAME`
+   BB_FILENAME
       Contains the filename of the recipe that owns the currently running
       task. For example, if the ``do_fetch`` task that resides in the
       ``my-recipe.bb`` is executing, the ``BB_FILENAME`` variable contains
       "/foo/path/my-recipe.bb".
 
-   :term:`BBFILES_DYNAMIC`
+   BBFILES_DYNAMIC
       Activates content depending on presence of identified layers.  You
       identify the layers by the collections that the layers define.
 
@@ -292,7 +292,7 @@
          /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
          /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
 
-   :term:`BB_GENERATE_MIRROR_TARBALLS`
+   BB_GENERATE_MIRROR_TARBALLS
       Causes tarballs of the Git repositories, including the Git metadata,
       to be placed in the :term:`DL_DIR` directory. Anyone
       wishing to create a source mirror would want to enable this variable.
@@ -302,7 +302,7 @@
 
          BB_GENERATE_MIRROR_TARBALLS = "1"
 
-   :term:`BB_HASHCONFIG_WHITELIST`
+   BB_HASHCONFIG_WHITELIST
       Lists variables that are excluded from base configuration checksum,
       which is used to determine if the cache can be reused.
 
@@ -314,14 +314,14 @@
       and ``DATE`` because these variables are always changing. If you did
       not exclude them, BitBake would never reuse the cache.
 
-   :term:`BB_HASHBASE_WHITELIST`
+   BB_HASHBASE_WHITELIST
       Lists variables that are excluded from checksum and dependency data.
       Variables that are excluded can therefore change without affecting
       the checksum mechanism. A common example would be the variable for
       the path of the build. BitBake's output should not (and usually does
       not) depend on the directory in which it was built.
 
-   :term:`BB_HASHCHECK_FUNCTION`
+   BB_HASHCHECK_FUNCTION
       Specifies the name of the function to call during the "setscene" part
       of the task's execution in order to validate the list of task hashes.
       The function returns the list of setscene tasks that should be
@@ -335,19 +335,19 @@
       However, the more accurate the data returned, the more efficient the
       build will be.
 
-   :term:`BB_INVALIDCONF`
+   BB_INVALIDCONF
       Used in combination with the ``ConfigParsed`` event to trigger
       re-parsing the base metadata (i.e. all the recipes). The
       ``ConfigParsed`` event can set the variable to trigger the re-parse.
       You must be careful to avoid recursive loops with this functionality.
 
-   :term:`BB_LOGCONFIG`
+   BB_LOGCONFIG
       Specifies the name of a config file that contains the user logging
       configuration. See
       :ref:`bitbake-user-manual/bitbake-user-manual-execution:logging`
       for additional information
 
-   :term:`BB_LOGFMT`
+   BB_LOGFMT
       Specifies the name of the log files saved into
       ``${``\ :term:`T`\ ``}``. By default, the ``BB_LOGFMT``
       variable is undefined and the log file names get created using the
@@ -358,13 +358,13 @@
       If you want to force log files to take a specific name, you can set this
       variable in a configuration file.
 
-   :term:`BB_NICE_LEVEL`
+   BB_NICE_LEVEL
       Allows BitBake to run at a specific priority (i.e. nice level).
       System permissions usually mean that BitBake can reduce its priority
       but not raise it again. See :term:`BB_TASK_NICE_LEVEL` for
       additional information.
 
-   :term:`BB_NO_NETWORK`
+   BB_NO_NETWORK
       Disables network access in the BitBake fetcher modules. With this
       access disabled, any command that attempts to access the network
       becomes an error.
@@ -373,16 +373,16 @@
       running builds when not connected to the Internet, and when operating
       in certain kinds of firewall environments.
 
-   :term:`BB_NUMBER_THREADS`
+   BB_NUMBER_THREADS
       The maximum number of tasks BitBake should run in parallel at any one
       time. If your host development system supports multiple cores, a good
       rule of thumb is to set this variable to twice the number of cores.
 
-   :term:`BB_NUMBER_PARSE_THREADS`
+   BB_NUMBER_PARSE_THREADS
       Sets the number of threads BitBake uses when parsing. By default, the
       number of threads is equal to the number of cores on the system.
 
-   :term:`BB_ORIGENV`
+   BB_ORIGENV
       Contains a copy of the original external environment in which BitBake
       was run. The copy is taken before any whitelisted variable values are
       filtered into BitBake's datastore.
@@ -392,7 +392,7 @@
          The contents of this variable is a datastore object that can be
          queried using the normal datastore operations.
 
-   :term:`BB_PRESERVE_ENV`
+   BB_PRESERVE_ENV
       Disables whitelisting and instead allows all variables through from
       the external environment into BitBake's datastore.
 
@@ -401,7 +401,7 @@
          You must set this variable in the external environment in order
          for it to work.
 
-   :term:`BB_RUNFMT`
+   BB_RUNFMT
       Specifies the name of the executable script files (i.e. run files)
       saved into ``${``\ :term:`T`\ ``}``. By default, the
       ``BB_RUNFMT`` variable is undefined and the run file names get
@@ -412,12 +412,12 @@
       If you want to force run files to take a specific name, you can set this
       variable in a configuration file.
 
-   :term:`BB_RUNTASK`
+   BB_RUNTASK
       Contains the name of the currently executing task. The value includes
       the "do\_" prefix. For example, if the currently executing task is
       ``do_config``, the value is "do_config".
 
-   :term:`BB_SCHEDULER`
+   BB_SCHEDULER
       Selects the name of the scheduler to use for the scheduling of
       BitBake tasks. Three options exist:
 
@@ -431,14 +431,14 @@
       -  *completion* - Causes the scheduler to try to complete a given
          recipe once its build has started.
 
-   :term:`BB_SCHEDULERS`
+   BB_SCHEDULERS
       Defines custom schedulers to import. Custom schedulers need to be
       derived from the ``RunQueueScheduler`` class.
 
       For information how to select a scheduler, see the
       :term:`BB_SCHEDULER` variable.
 
-   :term:`BB_SETSCENE_DEPVALID`
+   BB_SETSCENE_DEPVALID
       Specifies a function BitBake calls that determines whether BitBake
       requires a setscene dependency to be met.
 
@@ -448,7 +448,7 @@
       The function specified by this variable returns a "True" or "False"
       depending on whether the dependency needs to be met.
 
-   :term:`BB_SETSCENE_VERIFY_FUNCTION2`
+   BB_SETSCENE_VERIFY_FUNCTION2
       Specifies a function to call that verifies the list of planned task
       execution before the main task execution happens. The function is
       called once BitBake has a list of setscene tasks that have run and
@@ -459,7 +459,7 @@
       the function can force BitBake to run the task, which is necessary
       under certain metadata defined circumstances.
 
-   :term:`BB_SIGNATURE_EXCLUDE_FLAGS`
+   BB_SIGNATURE_EXCLUDE_FLAGS
       Lists variable flags (varflags) that can be safely excluded from
       checksum and dependency data for keys in the datastore. When
       generating checksum or dependency data for keys in the datastore, the
@@ -469,7 +469,7 @@
       ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:variable flags`"
       section.
 
-   :term:`BB_SIGNATURE_HANDLER`
+   BB_SIGNATURE_HANDLER
       Defines the name of the signature handler BitBake uses. The signature
       handler defines the way stamp files are created and handled, if and
       how the signature is incorporated into the stamps, and how the
@@ -478,7 +478,7 @@
       A new signature handler can be added by injecting a class derived
       from the ``SignatureGenerator`` class into the global namespace.
 
-   :term:`BB_SRCREV_POLICY`
+   BB_SRCREV_POLICY
       Defines the behavior of the fetcher when it interacts with source
       control systems and dynamic source revisions. The
       ``BB_SRCREV_POLICY`` variable is useful when working without a
@@ -492,7 +492,7 @@
       -  *clear* - Queries the source controls system every time. With this
          policy, there is no cache. The "clear" policy is the default.
 
-   :term:`BB_STAMP_POLICY`
+   BB_STAMP_POLICY
       Defines the mode used for how timestamps of stamp files are compared.
       You can set the variable to one of the following modes:
 
@@ -510,18 +510,18 @@
          Stamp policies are largely obsolete with the introduction of
          setscene tasks.
 
-   :term:`BB_STAMP_WHITELIST`
+   BB_STAMP_WHITELIST
       Lists files whose stamp file timestamps are compared when the stamp
       policy mode is set to "whitelist". For information on stamp policies,
       see the :term:`BB_STAMP_POLICY` variable.
 
-   :term:`BB_STRICT_CHECKSUM`
+   BB_STRICT_CHECKSUM
       Sets a more strict checksum mechanism for non-local URLs. Setting
       this variable to a value causes BitBake to report an error if it
       encounters a non-local URL that does not have at least one checksum
       specified.
 
-   :term:`BB_TASK_IONICE_LEVEL`
+   BB_TASK_IONICE_LEVEL
       Allows adjustment of a task's Input/Output priority. During
       Autobuilder testing, random failures can occur for tasks due to I/O
       starvation. These failures occur during various QEMU runtime
@@ -553,9 +553,9 @@
          device. To select the scheduler, use the following command form where
          device is the device (e.g. sda, sdb, and so forth): ::
 
-            $ sudo sh -c "echo cfq > /sys/block/device/queu/scheduler"
+            $ sudo sh -c “echo cfq > /sys/block/device/queu/scheduler
 
-   :term:`BB_TASK_NICE_LEVEL`
+   BB_TASK_NICE_LEVEL
       Allows specific tasks to change their priority (i.e. nice level).
 
       You can use this variable in combination with task overrides to raise
@@ -564,22 +564,22 @@
       in images is given a higher priority as compared to build tasks to
       ensure that images do not suffer timeouts on loaded systems.
 
-   :term:`BB_TASKHASH`
+   BB_TASKHASH
       Within an executing task, this variable holds the hash of the task as
       returned by the currently enabled signature generator.
 
-   :term:`BB_VERBOSE_LOGS`
+   BB_VERBOSE_LOGS
       Controls how verbose BitBake is during builds. If set, shell scripts
       echo commands and shell script output appears on standard out
       (stdout).
 
-   :term:`BB_WORKERCONTEXT`
+   BB_WORKERCONTEXT
       Specifies if the current context is executing a task. BitBake sets
       this variable to "1" when a task is being executed. The value is not
       set when the task is in server context during parsing or event
       handling.
 
-   :term:`BBCLASSEXTEND`
+   BBCLASSEXTEND
       Allows you to extend a recipe so that it builds variants of the
       software. Some examples of these variants for recipes from the
       OpenEmbedded-Core metadata are "natives" such as ``quilt-native``,
@@ -611,7 +611,7 @@
          since ``include`` statements are processed when the recipe is
          parsed.
 
-   :term:`BBDEBUG`
+   BBDEBUG
       Sets the BitBake debug output level to a specific value as
       incremented by the ``-D`` command line option.
 
@@ -620,19 +620,19 @@
          You must set this variable in the external environment in order
          for it to work.
 
-   :term:`BBFILE_COLLECTIONS`
+   BBFILE_COLLECTIONS
       Lists the names of configured layers. These names are used to find
       the other ``BBFILE_*`` variables. Typically, each layer appends its
       name to this variable in its ``conf/layer.conf`` file.
 
-   :term:`BBFILE_PATTERN`
+   BBFILE_PATTERN
       Variable that expands to match files from
       :term:`BBFILES` in a particular layer. This
       variable is used in the ``conf/layer.conf`` file and must be suffixed
       with the name of the specific layer (e.g.
       ``BBFILE_PATTERN_emenlow``).
 
-   :term:`BBFILE_PRIORITY`
+   BBFILE_PRIORITY
       Assigns the priority for recipe files in each layer.
 
       This variable is useful in situations where the same recipe appears
@@ -658,7 +658,7 @@
          You can use the command bitbake-layers show-layers to list all
          configured layers along with their priorities.
 
-   :term:`BBFILES`
+   BBFILES
       A space-separated list of recipe files BitBake uses to build
       software.
 
@@ -667,21 +667,21 @@
       For details on the syntax, see the documentation by following the
       previous link.
 
-   :term:`BBINCLUDED`
+   BBINCLUDED
       Contains a space-separated list of all of all files that BitBake's
       parser included during parsing of the current file.
 
-   :term:`BBINCLUDELOGS`
+   BBINCLUDELOGS
       If set to a value, enables printing the task log when reporting a
       failed task.
 
-   :term:`BBINCLUDELOGS_LINES`
+   BBINCLUDELOGS_LINES
       If :term:`BBINCLUDELOGS` is set, specifies
       the maximum number of lines from the task log file to print when
       reporting a failed task. If you do not set ``BBINCLUDELOGS_LINES``,
       the entire log is printed.
 
-   :term:`BBLAYERS`
+   BBLAYERS
       Lists the layers to enable during the build. This variable is defined
       in the ``bblayers.conf`` configuration file in the build directory.
       Here is an example: ::
@@ -696,12 +696,12 @@
       This example enables four layers, one of which is a custom, user-defined
       layer named ``meta-mykernel``.
 
-   :term:`BBLAYERS_FETCH_DIR`
+   BBLAYERS_FETCH_DIR
       Sets the base location where layers are stored. This setting is used
       in conjunction with ``bitbake-layers layerindex-fetch`` and tells
       ``bitbake-layers`` where to place the fetched layers.
 
-   :term:`BBMASK`
+   BBMASK
       Prevents BitBake from processing recipes and recipe append files.
 
       You can use the ``BBMASK`` variable to "hide" these ``.bb`` and
@@ -737,7 +737,7 @@
          When specifying a directory name, use the trailing slash character
          to ensure you match just that directory name.
 
-   :term:`BBMULTICONFIG`
+   BBMULTICONFIG
       Enables BitBake to perform multiple configuration builds and lists
       each separate configuration (multiconfig). You can use this variable
       to cause BitBake to build multiple targets where each target has a
@@ -758,7 +758,7 @@
       ":ref:`bitbake-user-manual/bitbake-user-manual-intro:executing a multiple configuration build`"
       section.
 
-   :term:`BBPATH`
+   BBPATH
       Used by BitBake to locate class (``.bbclass``) and configuration
       (``.conf``) files. This variable is analogous to the ``PATH``
       variable.
@@ -772,15 +772,15 @@
          $ export BBPATH
          $ bitbake target
 
-   :term:`BBSERVER`
+   BBSERVER
       Points to the server that runs memory-resident BitBake. The variable
       is only used when you employ memory-resident BitBake.
 
-   :term:`BBTARGETS`
+   BBTARGETS
       Allows you to use a configuration file to add to the list of
       command-line target recipes you want to build.
 
-   :term:`BBVERSIONS`
+   BBVERSIONS
       Allows a single recipe to build multiple versions of a project from a
       single recipe file. You also able to specify conditional metadata
       using the :term:`OVERRIDES` mechanism for a
@@ -790,7 +790,7 @@
       ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:variants - class extension mechanism`"
       section.
 
-   :term:`BITBAKE_UI`
+   BITBAKE_UI
       Used to specify the UI module to use when running BitBake. Using this
       variable is equivalent to using the ``-u`` command-line option.
 
@@ -799,23 +799,23 @@
          You must set this variable in the external environment in order
          for it to work.
 
-   :term:`BUILDNAME`
+   BUILDNAME
       A name assigned to the build. The name defaults to a datetime stamp
       of when the build was started but can be defined by the metadata.
 
-   :term:`BZRDIR`
+   BZRDIR
       The directory in which files checked out of a Bazaar system are
       stored.
 
-   :term:`CACHE`
+   CACHE
       Specifies the directory BitBake uses to store a cache of the metadata
       so it does not need to be parsed every time BitBake is started.
 
-   :term:`CVSDIR`
+   CVSDIR
       The directory in which files checked out under the CVS system are
       stored.
 
-   :term:`DEFAULT_PREFERENCE`
+   DEFAULT_PREFERENCE
       Specifies a weak bias for recipe selection priority.
 
       The most common usage of this is variable is to set it to "-1" within
@@ -830,7 +830,7 @@
          :term:`BBFILE_PRIORITY` if that variable is different between two
          layers that contain different versions of the same recipe.
 
-   :term:`DEPENDS`
+   DEPENDS
       Lists a recipe's build-time dependencies (i.e. other recipe files).
 
       Consider this simple example for two recipes named "a" and "b" that
@@ -847,16 +847,16 @@
       For information on runtime dependencies, see the :term:`RDEPENDS`
       variable.
 
-   :term:`DESCRIPTION`
+   DESCRIPTION
       A long description for the recipe.
 
-   :term:`DL_DIR`
+   DL_DIR
       The central download directory used by the build process to store
       downloads. By default, ``DL_DIR`` gets files suitable for mirroring for
       everything except Git repositories. If you want tarballs of Git
       repositories, use the :term:`BB_GENERATE_MIRROR_TARBALLS` variable.
 
-   :term:`EXCLUDE_FROM_WORLD`
+   EXCLUDE_FROM_WORLD
       Directs BitBake to exclude a recipe from world builds (i.e.
       ``bitbake world``). During world builds, BitBake locates, parses and
       builds all recipes found in every layer exposed in the
@@ -872,68 +872,68 @@
          recipe to ``EXCLUDE_FROM_WORLD`` only ensures that the recipe is not
          explicitly added to the list of build targets in a world build.
 
-   :term:`FAKEROOT`
+   FAKEROOT
       Contains the command to use when running a shell script in a fakeroot
       environment. The ``FAKEROOT`` variable is obsolete and has been
       replaced by the other ``FAKEROOT*`` variables. See these entries in
       the glossary for more information.
 
-   :term:`FAKEROOTBASEENV`
+   FAKEROOTBASEENV
       Lists environment variables to set when executing the command defined
       by :term:`FAKEROOTCMD` that starts the
       bitbake-worker process in the fakeroot environment.
 
-   :term:`FAKEROOTCMD`
+   FAKEROOTCMD
       Contains the command that starts the bitbake-worker process in the
       fakeroot environment.
 
-   :term:`FAKEROOTDIRS`
+   FAKEROOTDIRS
       Lists directories to create before running a task in the fakeroot
       environment.
 
-   :term:`FAKEROOTENV`
+   FAKEROOTENV
       Lists environment variables to set when running a task in the
       fakeroot environment. For additional information on environment
       variables and the fakeroot environment, see the
       :term:`FAKEROOTBASEENV` variable.
 
-   :term:`FAKEROOTNOENV`
+   FAKEROOTNOENV
       Lists environment variables to set when running a task that is not in
       the fakeroot environment. For additional information on environment
       variables and the fakeroot environment, see the
       :term:`FAKEROOTENV` variable.
 
-   :term:`FETCHCMD`
+   FETCHCMD
       Defines the command the BitBake fetcher module executes when running
       fetch operations. You need to use an override suffix when you use the
       variable (e.g. ``FETCHCMD_git`` or ``FETCHCMD_svn``).
 
-   :term:`FILE`
+   FILE
       Points at the current file. BitBake sets this variable during the
       parsing process to identify the file being parsed. BitBake also sets
       this variable when a recipe is being executed to identify the recipe
       file.
 
-   :term:`FILESPATH`
+   FILESPATH
       Specifies directories BitBake uses when searching for patches and
       files. The "local" fetcher module uses these directories when
       handling ``file://`` URLs. The variable behaves like a shell ``PATH``
       environment variable. The value is a colon-separated list of
       directories that are searched left-to-right in order.
 
-   :term:`GITDIR`
+   GITDIR
       The directory in which a local copy of a Git repository is stored
       when it is cloned.
 
-   :term:`HGDIR`
+   HGDIR
       The directory in which files checked out of a Mercurial system are
       stored.
 
-   :term:`HOMEPAGE`
+   HOMEPAGE
       Website where more information about the software the recipe is
       building can be found.
 
-   :term:`INHERIT`
+   INHERIT
       Causes the named class or classes to be inherited globally. Anonymous
       functions in the class or classes are not executed for the base
       configuration and in each individual recipe. The OpenEmbedded build
@@ -943,7 +943,7 @@
       ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:\`\`inherit\`\` configuration directive`"
       section.
 
-   :term:`LAYERDEPENDS`
+   LAYERDEPENDS
       Lists the layers, separated by spaces, upon which this recipe
       depends. Optionally, you can specify a specific layer version for a
       dependency by adding it to the end of the layer name with a colon,
@@ -956,20 +956,20 @@
       use the specific layer name as a suffix to the variable (e.g.
       ``LAYERDEPENDS_mylayer``).
 
-   :term:`LAYERDIR`
+   LAYERDIR
       When used inside the ``layer.conf`` configuration file, this variable
       provides the path of the current layer. This variable is not
       available outside of ``layer.conf`` and references are expanded
       immediately when parsing of the file completes.
 
-   :term:`LAYERDIR_RE`
+   LAYERDIR_RE
       When used inside the ``layer.conf`` configuration file, this variable
       provides the path of the current layer, escaped for use in a regular
       expression (:term:`BBFILE_PATTERN`). This
       variable is not available outside of ``layer.conf`` and references
       are expanded immediately when parsing of the file completes.
 
-   :term:`LAYERVERSION`
+   LAYERVERSION
       Optionally specifies the version of a layer as a single number. You
       can use this variable within
       :term:`LAYERDEPENDS` for another layer in
@@ -979,10 +979,10 @@
       use the specific layer name as a suffix to the variable (e.g.
       ``LAYERDEPENDS_mylayer``).
 
-   :term:`LICENSE`
+   LICENSE
       The list of source licenses for the recipe.
 
-   :term:`MIRRORS`
+   MIRRORS
       Specifies additional paths from which BitBake gets source code. When
       the build system searches for source code, it first tries the local
       download directory. If that location fails, the build system tries
@@ -990,7 +990,7 @@
       upstream source, and then locations specified by ``MIRRORS`` in that
       order.
 
-   :term:`MULTI_PROVIDER_WHITELIST`
+   MULTI_PROVIDER_WHITELIST
       Allows you to suppress BitBake warnings caused when building two
       separate recipes that provide the same output.
 
@@ -1003,7 +1003,7 @@
       To use the variable, list provider names (e.g. recipe names,
       ``virtual/kernel``, and so forth).
 
-   :term:`OVERRIDES`
+   OVERRIDES
       BitBake uses ``OVERRIDES`` to control what variables are overridden
       after BitBake parses recipes and configuration files.
 
@@ -1013,14 +1013,14 @@
       ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:conditional syntax
       (overrides)`" section.
 
-   :term:`P4DIR`
+   P4DIR
       The directory in which a local copy of a Perforce depot is stored
       when it is fetched.
 
-   :term:`PACKAGES`
+   PACKAGES
       The list of packages the recipe creates.
 
-   :term:`PACKAGES_DYNAMIC`
+   PACKAGES_DYNAMIC
       A promise that your recipe satisfies runtime dependencies for
       optional modules that are found in other recipes.
       ``PACKAGES_DYNAMIC`` does not actually satisfy the dependencies, it
@@ -1030,29 +1030,29 @@
       ``PACKAGES_DYNAMIC`` variable, but a package with the module name is
       never actually produced, then the other package will be broken.
 
-   :term:`PE`
+   PE
       The epoch of the recipe. By default, this variable is unset. The
       variable is used to make upgrades possible when the versioning scheme
       changes in some backwards incompatible way.
 
-   :term:`PERSISTENT_DIR`
+   PERSISTENT_DIR
       Specifies the directory BitBake uses to store data that should be
       preserved between builds. In particular, the data stored is the data
       that uses BitBake's persistent data API and the data used by the PR
       Server and PR Service.
 
-   :term:`PF`
+   PF
       Specifies the recipe or package name and includes all version and
       revision numbers (i.e. ``eglibc-2.13-r20+svnr15508/`` and
       ``bash-4.2-r1/``).
 
-   :term:`PN`
+   PN
       The recipe name.
 
-   :term:`PR`
+   PR
       The revision of the recipe.
 
-   :term:`PREFERRED_PROVIDER`
+   PREFERRED_PROVIDER
       Determines which recipe should be given preference when multiple
       recipes provide the same item. You should always suffix the variable
       with the name of the provided item, and you should set it to the
@@ -1063,7 +1063,7 @@
          PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
          PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
 
-   :term:`PREFERRED_PROVIDERS`
+   PREFERRED_PROVIDERS
       Determines which recipe should be given preference for cases where
       multiple recipes provide the same item. Functionally,
       ``PREFERRED_PROVIDERS`` is identical to
@@ -1078,7 +1078,7 @@
          PREFERRED_PROVIDER_xxx = "yyy"
          PREFERRED_PROVIDER_aaa = "bbb"
 
-   :term:`PREFERRED_VERSION`
+   PREFERRED_VERSION
       If there are multiple versions of recipes available, this variable
       determines which recipe should be given preference. You must always
       suffix the variable with the :term:`PN` you want to
@@ -1100,7 +1100,7 @@
          end of the string. You cannot use the wildcard character in any other
          location of the string.
 
-   :term:`PREMIRRORS`
+   PREMIRRORS
       Specifies additional paths from which BitBake gets source code. When
       the build system searches for source code, it first tries the local
       download directory. If that location fails, the build system tries
@@ -1122,7 +1122,7 @@
       use ``file://`` URLs to point to local directories or network shares as
       well.
 
-   :term:`PROVIDES`
+   PROVIDES
       A list of aliases by which a particular recipe can be known. By
       default, a recipe's own ``PN`` is implicitly already in its
       ``PROVIDES`` list. If a recipe uses ``PROVIDES``, the additional
@@ -1151,7 +1151,7 @@
       "virtual/function" (e.g. "virtual/kernel"). The slash is simply part
       of the name and has no syntactical significance.
 
-   :term:`PRSERV_HOST`
+   PRSERV_HOST
       The network based :term:`PR` service host and port.
 
       Following is an example of how the ``PRSERV_HOST`` variable is set: ::
@@ -1162,10 +1162,10 @@
       service. You can set ``PRSERV_HOST`` to other values to use a remote PR
       service.
 
-   :term:`PV`
+   PV
       The version of the recipe.
 
-   :term:`RDEPENDS`
+   RDEPENDS
       Lists a package's runtime dependencies (i.e. other packages) that
       must be installed in order for the built package to run correctly. If
       a package in this list cannot be found during the build, you will get
@@ -1206,11 +1206,11 @@
       For information on build-time dependencies, see the :term:`DEPENDS`
       variable.
 
-   :term:`REPODIR`
+   REPODIR
       The directory in which a local copy of a ``google-repo`` directory is
       stored when it is synced.
 
-   :term:`RPROVIDES`
+   RPROVIDES
       A list of package name aliases that a package also provides. These
       aliases are useful for satisfying runtime dependencies of other
       packages both during the build and on the target (as specified by
@@ -1222,7 +1222,7 @@
 
          RPROVIDES_${PN} = "widget-abi-2"
 
-   :term:`RRECOMMENDS`
+   RRECOMMENDS
       A list of packages that extends the usability of a package being
       built. The package being built does not depend on this list of
       packages in order to successfully build, but needs them for the
@@ -1249,10 +1249,10 @@
 
          RRECOMMENDS_${PN} = "foo (>= 1.2)"
 
-   :term:`SECTION`
+   SECTION
       The section in which packages should be categorized.
 
-   :term:`SRC_URI`
+   SRC_URI
       The list of source files - local or remote. This variable tells
       BitBake which bits to pull for the build and how to pull them. For
       example, if the recipe or append file needs to fetch a single tarball
@@ -1316,12 +1316,12 @@
       -  ``downloadfilename`` : Specifies the filename used when storing
          the downloaded file.
 
-   :term:`SRCDATE`
+   SRCDATE
       The date of the source code used to build the package. This variable
       applies only if the source was fetched from a Source Code Manager
       (SCM).
 
-   :term:`SRCREV`
+   SRCREV
       The revision of the source code used to build the package. This
       variable applies only when using Subversion, Git, Mercurial and
       Bazaar. If you want to build a fixed revision and you want to avoid
@@ -1329,7 +1329,7 @@
       your recipe, you should specify a ``SRCREV`` that is a full revision
       identifier and not just a tag.
 
-   :term:`SRCREV_FORMAT`
+   SRCREV_FORMAT
       Helps construct valid :term:`SRCREV` values when
       multiple source controlled URLs are used in
       :term:`SRC_URI`.
@@ -1343,30 +1343,30 @@
       ``AUTOINC`` placeholder is added and if needed. And, this placeholder
       is placed at the start of the returned string.
 
-   :term:`STAMP`
+   STAMP
       Specifies the base path used to create recipe stamp files. The path
       to an actual stamp file is constructed by evaluating this string and
       then appending additional information.
 
-   :term:`STAMPCLEAN`
+   STAMPCLEAN
       Specifies the base path used to create recipe stamp files. Unlike the
       :term:`STAMP` variable, ``STAMPCLEAN`` can contain
       wildcards to match the range of files a clean operation should
       remove. BitBake uses a clean operation to remove any other stamps it
       should be removing when creating a new stamp.
 
-   :term:`SUMMARY`
+   SUMMARY
       A short summary for the recipe, which is 72 characters or less.
 
-   :term:`SVNDIR`
+   SVNDIR
       The directory in which files checked out of a Subversion system are
       stored.
 
-   :term:`T`
+   T
       Points to a directory were BitBake places temporary files, which
       consist mostly of task logs and scripts, when building a particular
       recipe.
 
-   :term:`TOPDIR`
+   TOPDIR
       Points to the build directory. BitBake automatically sets this
       variable.
