poky: subtree update:ad30a6d470..7231c10430

Akira Shibakawa (3):
      License-Update: attr: Add a missing file to LIC_FILES_CHKSUM.
      License-Update: kmod: Add a missing file to LIC_FILES_CHKSUM.
      License-Update: gdk-pixbuf: Fix LICENSE.

Alejandro Hernandez Samaniego (1):
      baremetal-helloworld: Fix install path since S doesnt have a trailing slash

Alexander Kanavin (4):
      ncurses: only include upstream releases in version check
      python3: fix upstream version check
      boost-build-native: fix upstream version check
      selftest/virgl: drop the custom 30 sec timeout

Alistair (1):
      weston-init: Allow setting idle time to 0

Changqing Li (1):
      toolchain-shar-extract.sh: don't print useless info

Charlie Davies (1):
      bitbake: bitbake: fetch/git: use shlex.quote() to support spaces in SRC_URI url

Chen Qi (2):
      watchdog: use /run instead of /var/run in systemd service file
      cups: use /run instead /var/run in systemd's unit file

David Reyna (1):
      bitbake: toaster: Enable Gatesgarth branch in place of Zeus

Douglas Royds (1):
      externalsrc: No single-task lock if S != B

Joshua Watt (2):
      ref-variables: Given example for naming sources
      ref-manual: Document wic --offset option

Khairul Rohaizzat Jamaluddin (1):
      imagefeatures: New test case, test_empty_image, added

Khem Raj (5):
      autotools.bbclass: Order CONFIG_SHELL before CACHED_CONFIGUREVARS
      boost: Fix build on 32-bit arches with 64bit time_t only
      mesa: Fix build on 32bit arches supporting 64bit time_t only
      packagegroup-core-tools-debug: Disable for rv32/glibc as well
      packagegroup-core-tools-profile: Remove lttng-tools and perf for rv32/glibc

Konrad Weihmann (1):
      lib/oe/rootfs: introduce IMAGE_LOG_CHECK_EXCLUDES

Lee Chee Yang (2):
      libproxy: fix CVE-2020-25219
      grub2: fix CVE-2020-10713

Martin Jansa (11):
      tune-cortexa76ae.inc: Correct TUNE_FEATURES
      arch-armv7a.inc: fix typo
      arch-mips.inc: remove duplicated mips64el-o32 from PACKAGE_EXTRA_ARCHS_tune-mips64el-o32
      arch-arm64.inc: don't append _be to ARMPKGARCH for tune-aarch64_be
      tune-mips64r6.inc: fix typo in mipsisa64r6-nf
      tune-ep9312.inc: add t suffix for thumb to PACKAGE_EXTRA_ARCHS_tune-ep9312
      tune-riscv.inc: use nf suffix also for TUNE_PKGARCH
      tune-supersparc.inc: remove
      tune-thunderx.inc: don't append _be to ARMPKGARCH for tune-thunderx_be
      siteinfo: Recognize 32bit PPC LE
      siteinfo: Recognize bigendian sh3be and sh4be

Max Krummenacher (2):
      linux-firmware: package marvel sdio 8997 firmware
      linux-firmware: package nvidia firmware

Mingli Yu (1):
      tcl: adapt to potential pseudo changes

Naoki Hayama (1):
      dev/test/ref-manual: Fix typos

Neil Armstrong (1):
      linux-firmware: add Amlogic VDEC firmware package

Nicolas Dechesne (4):
      sdk-manual: use built-in footnotes
      dev-manual/dev-manual-common-tasks: fix warning
      sphinx: add 3.1.3 and 3.0.4 release in the switcher
      dev-manual/dev-manual-common-tasks: fix typos and use extlinks

Paul Eggleton (2):
      classes/buildhistory: record SRC_URI
      classes/buildhistory: also save recipe info for native recipes

Quentin Schulz (17):
      docs: poky.yaml: use HTTPS for links
      docs: ref-manual: indentation, links and highlights fixes
      docs: remove OE_INIT_FILE variable
      docs: ref-manual: fix typos
      docs: ref-manual: migration-2.3: specify 2.3 version instead of DISTRO
      docs: ref-manual: ref-classes: remove dropped tinderclient class
      docs: ref-manual: ref-system-requirements: update requirements to build Sphinx docs
      docs: sphinx: yocto-vars: rebuild files when poky.yaml has changed
      docs: poky.yaml: fix identation in host packages variables
      docs: dev-manual-common-tasks: remove paragraph about race when missing DEPENDS
      docs: dev-manual-common-tasks: update python webserver example to python3
      docs: dev-manual: fix typos, highlights, indentation and links
      docs: ref-manual: ref-terms: add links to terms in glossary
      docs: bsp-guide: bsp: fix typos, highlights and links
      docs: kernel-dev: fix typos, highlights and links
      docs: kernel-dev-common: add .patch file extension to SRC_URI files
      docs: kernel-dev-faq: update outdated RDEPENDS_kernel-base

Reyna, David (1):
      bitbake: toaster: Update documentation links to new URLs

Richard Purdie (10):
      layer.conf: Switch to gatesgarth only in preparation for release
      bitbake: ui/toasterui: Fix startup faults from incorrect event sequencing
      bitbake: bitbake: Bump version to 1.48.0 ready for the new release
      oeqa: Add sync call to command execution
      poky.conf: Bump version for 3.2 gatesgarth release
      build-appliance-image: Update to master head revision
      bitbake: tests/fetch: Update upstream master->main branchname transition
      Revert "classes/buildhistory: also save recipe info for native recipes"
      valgrind: Fix build on musl after drd fixes
      build-appliance-image: Update to master head revision

Robert Yang (1):
      weston: Fix PACKAGECONFIG for remoting

Roland Hieber (1):
      devtool: make sure .git/info exists before writing to .git/info/excludes

Ross Burton (4):
      waf: don't assume the waf intepretter is good
      waf: add ${B} to do_configure[cleandirs]
      scripts/install-buildtools: Update to 3.2 M3 buildtools
      glib-2.0: fix parsing of slim encoded tzdata

Sourabh Banerjee (1):
      layer.conf: fix sanity error for PATH variable in extensible SDK workflow

Stacy Gaikovaia (2):
      valgrind: drd: fix pthread intercept test failures
      bitbake: main: Handle cooker daemon startup error

Tim Orling (1):
      bitbake: lib/bb/ui/knotty: fix typo in parseprogress

Victor Kamensky (3):
      Revert "qemumips: use 34Kf-64tlb CPU emulation"
      Revert "qemu: add 34Kf-64tlb fictitious cpu type"
      qemu: change TLBs number to 64 in 34Kf mips cpu model

Yi Zhao (1):
      dhcpcd: add PACKAGECONFIG for ntp/chrony/ypbind hooks

Zang Ruochen (1):
      harfbuzz: Refresh patch

akuster (2):
      busybox: add rev and pgrep
      kea: add init scripts

leimaohui (1):
      docs: Updated the status of spdx module.

zangrc (1):
      classes: Fixed the problem of undefined variables when compiling meta-toolchain.

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Ic45bc219b94960751896a0ae3d4923a9f5849e70
diff --git a/poky/documentation/sphinx/yocto-vars.py b/poky/documentation/sphinx/yocto-vars.py
index 8083d7d..8795eee 100644
--- a/poky/documentation/sphinx/yocto-vars.py
+++ b/poky/documentation/sphinx/yocto-vars.py
@@ -1,4 +1,6 @@
 #!/usr/bin/env python
+from hashlib import md5
+from pathlib import Path
 import re
 import sys
 
@@ -20,25 +22,62 @@
 # Each .rst file is processed after source-read event (subst_vars_replace runs once per file)
 subst_vars = {}
 
+poky_hash = ""
+
 def subst_vars_replace(app: Sphinx, docname, source):
     result = source[0]
     for k in subst_vars:
         result = result.replace("&"+k+";", subst_vars[k])
     source[0] = result
 
+def yocto_vars_env_get_outdated(app: Sphinx, env, added, changed, removed):
+    '''
+    If poky.yaml changed (BUILDDIR/.poky.yaml.cache does not exist or contains
+    an md5sum different from poky.yaml's current md5sum), force rebuild of all
+    *.rst files in SOURCEDIR whose content has at least one occurence of `&.*;`
+    (see PATTERN global variable).
+    '''
+    try:
+        poky_cache = Path(app.outdir) / ".poky.yaml.cache"
+        cache_hash = poky_cache.read_text()
+    except FileNotFoundError:
+        cache_hash = None
+
+    if poky_hash == cache_hash:
+        return []
+
+    docs = []
+    for p in Path(app.srcdir).rglob("*.rst"):
+        if PATTERN.search(p.read_text()):
+            p_rel_no_ext = p.relative_to(app.srcdir).parent / p.stem
+            docs.append(str(p_rel_no_ext))
+    return docs
+
+def yocto_vars_build_finished(app: Sphinx, exception):
+    poky_cache = Path(app.outdir) / ".poky.yaml.cache"
+    poky_cache.write_text(poky_hash)
+    return []
+
 PATTERN = re.compile(r'&(.*?);')
 def expand(val, src):
     return PATTERN.sub(lambda m: expand(src.get(m.group(1), ''), src), val)
 
 def setup(app: Sphinx):
-    #FIXME: if poky.yaml changes, files are not reprocessed.
+    global poky_hash
+
     with open("poky.yaml") as file:
-        subst_vars.update(yaml.load(file, Loader=yaml.FullLoader))
+        hasher = md5()
+        buff = file.read()
+        hasher.update(buff.encode('utf-8'))
+        poky_hash = hasher.hexdigest()
+        subst_vars.update(yaml.safe_load(buff))
 
     for k in subst_vars:
         subst_vars[k] = expand(subst_vars[k], subst_vars)
 
     app.connect('source-read', subst_vars_replace)
+    app.connect('env-get-outdated', yocto_vars_env_get_outdated)
+    app.connect('build-finished', yocto_vars_build_finished)
 
     return dict(
         version = __version__,