subtree updates:openembedded:poky: Jan 27 2023

poky: 0ce159991d..5e249ec855:
  Alex Kiernan (2):
        rust: Upgrade 1.66.0 -> 1.66.1
        rust: Remove CARGO_VERSION

  Alexander Kanavin (7):
        selftest/virgl: use pkg-config from the host
        ethtool: upgrade 6.0 -> 6.1
        man-pages: upgrade 6.01 -> 6.02
        mesa: update 22.2.3 -> 22.3.3
        webkitgtk: submit a patch upstream
        python3-sphinxcontrib-applehelp: update 1.0.2 -> 1.0.3
        vulkan-samples: branch rename master -> main

  Benoît Mauduit (1):
        lib/oe/reproducible: Use git log without gpg signature

  Bruce Ashfield (6):
        linux-yocto/6.1: edgerouter: Replace OCTEON_USB with USB_OCTEON_HCD
        linux-yocto/6.1: qemuriscv32: Enable CONFIG_NONPORTABLE
        linux-yocto/6.1: update to v6.1.5
        linux-yocto/5.15: update to v5.15.87
        conf/qemu: bump preferred kernel version to 6.1
        poky/poky-tiny: bump preferred version to 6.1

  Changqing Li (1):
        cmake-native: use internal cmcurl library

  Chen Qi (2):
        file: export MAGIC in SDK
        rpm: do not export MAGIC in SDK

  Chuck Wolber (1):
        scripts/oe-setup-layers: Make efficiently idempotent

  Fabio Estevam (2):
        u-boot: Upgrade to 2023.01
        u-boot: Update Upstream-Status

  He Zhe (1):
        lttng-modules: update 2.13.7 -> 2.13.8

  Jan Luebbe (1):
        p11-kit: add native to BBCLASSEXTEND

  Jermain Horsman (1):
        cve-check: write the cve manifest to IMGDEPLOYDIR

  Kevin Hao (1):
        meta-yocto-bsp: Update the default kernel to 6.1

  Khem Raj (31):
        createrepo-c: Include missing rpm/rpmstring.h
        libglu: Remove deprecated register in C++17
        cpio: Do not use _Noreturn in gnulib
        groff: Drop use of `register` storage class
        vulkan-samples: Update to the tip of trunk
        unfs3: Fix implicit function declarations of fix_dir_times()
        gperf: Make the code C++17 compliant
        libxcb: Fixed c2x standard undefined behaviour
        dbus: Use Alignof when using C11 or newer standard
        m4: Define alignof_slot using _Alignof when using C11 or newer
        opkg: Define alignof using _Alignof when using C11 or newer
        cpio: Fix gnulib alignof implementation on clang
        python3-numpy: Define _ALIGN using _Alignof when using C11 or newer
        vulkan-samples: Drop using u8string_view
        musl-obstack: Update to 1.2.3
        mdadm: Define alignof using _Alignof when using C11 or newer
        lttng-tools: Switch to alternative upstream submitted patch
        libtirpc: Check if file exists before operating on it
        ruby: Use C11 _Alignof to define ALIGN_OF when possible
        libusb1: Link with latomic only if compiler has no atomic builtins
        libusb1: Strip trailing whitespaces
        elfutils: Fix build with libcurl >= 7.87
        stress-ng: Robustify test-float test
        harfbuzz: Add missing <cstdio> and <cstdlib> includes
        apt: add missing <cstdint> for uint16_t
        vulkan-samples: Include missing header cstdint for uint32_t
        ruby: Update the patch status
        systemd: Add another fix for using XSI strerror_r
        elfutils: Remove funcretval test from run-native-test.sh for now
        binutils: Upgrade to 2.40 release
        binutils: Package libsframe

  Lee Chee Yang (1):
        migration-guides: add release-notes for 4.1.2

  Luca Boccassi (1):
        systemd: add PACKAGECONFIG to select default compression format

  Luca Ceresoli (1):
        manuals: fix typo in the MLPREFIX description

  Markus Volk (3):
        gptfdisk: add follow-up patch to fix with current popt
        gtk+3: add PACKAGECONFIG for libcloudservice and tracker; fix cups backend
        gtk4: add PACKAGECONFIG for cloudproviders

  Martin Jansa (1):
        mesa: update submitted patch with backported version

  Michael Opdenacker (3):
        rust-bin.bbclass: remove unused class
        meta/classes-global: remove package_tar.bbclass
        ref-manual: initial documentation for go and go-mod classes

  Mikko Rapeli (1):
        kmod: enable openssl support by default

  Niko Mauno (1):
        Fix missing leading whitespace with ':append'

  Ovidiu Panait (1):
        webkitgtk: fix perl-native dependency

  Paulo Neves (1):
        bitbake: bitbake-getvar: Add a quiet command line argument

  Pavel Zhukov (3):
        bitbake: fetch2: kill parameters in uri_find_decoded
        bitbake: fetch2/tests: Add test for Mercurial
        bitbake: fetch2/tests: Add parameter to recipe_uri

  Pawel Zalewski (1):
        classes/fs-uuid: Fix command output decoding issue

  Peter Kjellerstedt (2):
        librsvg: Only enable the Vala bindings if GObject Introspection is enabled
        cargo-update-recipe-crates.bbclass: Mark the update_crates task as nostamp

  Peter Marko (1):
        iproute2: separate routel and add python dependency

  Quentin Schulz (1):
        packagegroup-core-boot: make init-ifupdown package a recommendation

  Randy MacLeod (1):
        vim: upgrade 9.0.0947 -> 9.0.1211

  Richard Purdie (23):
        bitbake: server/process: Improve lockfile handling at exit
        pseudo: Update to pull in linux-libc-headers race fix
        pseudo: Switch back to the master branch
        insane: Improve patch warning/error handling
        poky: Set INIT_MANAGER by a separate variable
        bitbake: server/process: Fix lockfile contents check bug
        bitbake: cooker: Fix siggen recipe cache race issue
        bitbake: cache: Only write files if we have data
        bitbake: cooker: Fix parsing race around cache handling
        bitbake: data: Add support for new BB_HASH_CODEPARSER_VALS for cache optimisation
        bitbake: data_smart: Small optimisation to _findVar()
        native: Drop special variable handling
        bitbake.conf: Add BB_HASH_CODEPARSER_VALS
        pseudo: Update to include logic fix
        bitbake.conf: Add METADATA_REVISION to BB_HASH_CODEPARSER_VALS
        native: Implement BBCLASSEXTEND PACKAGES_DYNAMIC handling
        conf/sdk/x86-64: Set march specifically
        bitbake: cache/codeparser: Switch to a new BB_CACHEDIR variable for cache location
        oeqa/selftest/devtool: Fix for linux 6.1 versions onwards
        wic/efi-bootdisk.wks: Fix for 6.1 kernel versions
        kernel/linux-kernel-base: Fix kernel build artefact determinism issues
        build-appliance-image: Update to master head revision
        build-appliance: Fix merge error

  Ross Burton (12):
        python3-pyproject-hooks: add new recipe
        python3-build: add 0.10.0
        python_pep517: use python3-build, not picobuild
        python3-picobuild: remove
        cve-update-db-native: show IP on failure
        quilt: rewrite ptest glue
        quilt: fix intermittent failure in faildiff.test
        spirv-headers/spirv-tools: set correct branch name
        quilt: use upstreamed faildiff.test fix
        ppp: backport fix for CVE-2022-4603
        bitbake: bb/utils: include SSL certificate paths in export_proxies
        buildtools-tarball: set pkg-config search path

  Thomas Roos (1):
        devtool: fix devtool finish when gitmodules file is empty

  Tim Orling (3):
        bitbake: bitbake: fix deprecated threading.Thread.setDaemon
        python3-cryptography{-vectors}: 38.0.4 -> 39.0.0
        bitbake: toaster: update fixtures

  Tom Hochstein (1):
        gstreamer1.0-plugins-good: Fix libsoup runtime dependency

  Vincent Davis Jr (1):
        mesa: allow mesa (gbm) to compile without backend

  Wang Mingyu (20):
        btrfs-tools: upgrade 6.1 -> 6.1.2
        libpcap: upgrade 1.10.2 -> 1.10.3
        libwebp: upgrade 1.2.4 -> 1.3.0
        man-db: upgrade 2.11.1 -> 2.11.2
        dpkg: upgrade 1.21.17 -> 1.21.18
        ed: upgrade 1.18 -> 1.19
        gi-docgen: upgrade 2022.2 -> 2023.1
        python3-alabaster: upgrade 0.7.12 -> 0.7.13
        python3-setuptools: upgrade 65.6.3 -> 65.7.0
        patchelf: upgrade 0.17.0 -> 0.17.2
        python3-cython: upgrade 0.29.32 -> 0.29.33
        python3-dbusmock: upgrade 0.28.6 -> 0.28.7
        python3-hatchling: upgrade 1.12.1 -> 1.12.2
        python3-hypothesis: upgrade 6.61.0 -> 6.62.0
        python3-importlib-metadata: upgrade 5.2.0 -> 6.0.0
        python3-packaging: upgrade 22.0 -> 23.0
        python3-pbr: upgrade 5.11.0 -> 5.11.1
        python3-pygments: upgrade 2.13.0 -> 2.14.0
        stress-ng: upgrade 0.15.01 -> 0.15.02
        xz: upgrade 5.4.0 -> 5.4.1

  Xiangyu Chen (4):
        numactl: skip test case when target platform doesn't have 2 CPU node
        qemuboot.bbclass: add QB_NFSROOTFS_EXTRA_OPT for nfs rootfs extra option
        runqemu: add process of option QB_NFSROOTFS_EXTRA_OPT
        qemuppc64: set the qemuppc64 nfs r/wsize mount options to 524288

  Yoann Congal (2):
        bitbake: persist_data: Handle sqlite error when cachefile path is too long
        sanity: Fix small typos

meta-openembedded: cd13881611..2ab113e8be:
  Alejandro Enedino Hernandez Samaniego (1):
        weechat: Update 3.4.1 -> 3.8

  Alex Kiernan (4):
        dnsmasq: Merge .inc into .bb
        dnsmasq: Expand configuration options
        ntpsec: Upgrade 1.2.1 -> 1.2.2
        keyutils: Upgrade 1.6.1 -> 1.6.3

  Archana Polampalli (1):
        Nodejs: Upgrade to 18.12.1

  Bartosz Golaszewski (1):
        libgpiod: fix python bindings build

  Chee Yang Lee (5):
        opencv: fix reproducible builds
        xerces-c: upgrade to 3.2.4
        zsh: Fix CVE-2021-45444
        redis: Upgrade to 7.0.8
        redis: Upgrade to 6.2.9

  Dmitry Baryshkov (1):
        edid-decode: an utility to parse EDID information

  Etienne Cordonnier (1):
        uutils-coreutils: upgrade 0.0.16 -> 0.0.17

  Fabio Estevam (1):
        lvgl-demo-fb: Add recipe

  Gianfranco Costamagna (1):
        boinc-client: Update boinc from 7.20.4 to 7.20.5

  Hermes Zhang (1):
        kernel_add_regdb: Change the task order

  Jan Luebbe (3):
        pcsc-lite: fix native build
        pcsc-lite: fix homepage URL
        opensc: fix homepage URL

  Kai Kang (2):
        mozjs: fix compile error for arm
        crda: 3.18 -> 4.15

  Khem Raj (65):
        packagegroup-meta-oe: Remove boost-url from comments
        trace-cmd: Update to upstream submitted patches
        packagegroup-meta-oe: Update to reflect latest recipes
        freeglut: Add packageconfigs for x11/wayland/gles
        xdg-desktop-portal-wlr: Add wayland to REQUIRED_DISTRO_FEATURES
        ipmitool: Remove unneeded patch
        dibbler: Fix build with c++17 and newer std
        libtevent: Package cmocka tests into ptest package
        netkit-telnet: Drop using register storage class keyword
        libxml-libxml-perl: Fix function pointer types
        fatcat: Fix build with std=c++17
        ncmpc: Upgrade to 0.47
        python3-matplotlib: Upgrade to 3.6.3
        python3-matplotlib: Fix build with c++17
        python3-greenlet: Drop using register keyword
        libmodplug: Fix build with c++17
        xmlrpc-c: Upgrade to 1.54.06
        satyr: Fix build with musl
        p8platform: Fix build with c++17 clang
        freerdp: Fix incompatible function pointer type
        libtorrent: Update to tip of trunk
        gnuchess: Fix build with c++17
        ippool: Use unsigned int type for 1-bit integer bitfield
        audiofile: Stick to c++14 std
        ssiapi: Use c++14 standard
        log4cpp: Keep using std=c++14
        gengetopt: Use std=c++14
        libmimetic: Pin to using -std=c++14
        ace: Upgrade to 6.5.19
        pipewire-media-session: Use PW_ENABLE_DEPRECATED
        rtorrent: Update to latest tip of trunk
        nspr: Fix build with clang16
        net-snmp: Fix build with clang16
        xmlstarlet: Fix build with clang16
        libol: Drop recipe
        hplip: Update to 3.22.10
        espeak: Drop using 'register' keyword for storage classifier
        uw-imap: Fix build with clang 16
        xmlsec1: Include xmlsec/parser.h for xmlSecParserSetDefaultOptions()
        exiv2: Upgrade to 0.27.6
        packagegroup-meta-oe: Remove mongodb for upsupported arches
        rtorrent: Add missing dependency on autoconf-archive
        thrift: Fix c++ and system header include order problem
        libcereal: Use -idirafter instead of -isystem
        poppler: cmake: Do not use -isystem
        uftreace: Fix a build race
        sdbus-c++: Disable ccache
        libcamera: Fix build with gcc-13
        mariadb: Fix build with gcc-13
        vulkan-cts,opengl-es-cts: Fix build with gcc-13
        rocksdb: Fix build with gcc13
        rocksdb: Upgrade to 7.9.2
        redis-plus-plus: Upgrade to 1.3.7
        redis-plus-plus: Fix build with gcc13
        rdfind: Upgrade to 1.5.0 release
        rdfind: Fix build with gcc13
        libiodbc: Fix SRC_URI to not use gitlab archives
        opensaf: Fix build with gcc13
        crossguid: Fix build with gcc13
        dbus-cxx: Fix build with gcc13
        dbus-cxx: Upgrade to 2.3.1
        msktutil: Upgrade to 1.2.1
        hiredis: Enable SSL/TLS support by default
        redis-plus-plus: Enable SSL/TLS by default
        rocksdb: Fix build with clang compiler

  Lei Maohui (2):
        biodbc: Added a new recipe.
        trace-cmd: Fix QA Issue of do_package when enable multilib:

  Leon Anavi (14):
        python3-traitlets: Upgrade 5.8.0 -> 5.8.1
        python3-prettytable: Upgrade 3.4.1 -> 3.6.0
        python3-cantools: Upgrade 38.0.0 -> 38.0.1
        python3-imageio: Upgrade 2.23.0 -> 2.24.0
        python3-astroid: Upgrade 2.12.13 -> 2.13.2
        python3-alembic: Upgrade 1.9.1 -> 1.9.2
        python3-autobahn: Upgrade 22.12.1 -> 23.1.1
        python3-eventlet: Upgrade 0.33.2 -> 0.33.3
        python3-configobj: Upgrade 5.0.6 -> 5.0.8
        python3-nocaselist: Upgrade 1.0.6 -> 1.1.0
        python3-nocasedict: Upgrade 1.0.4 -> 1.1.0
        python3-email-validator: Upgrade 1.3.0 -> 1.3.1
        python3-imageio: Upgrade 2.24.0 -> 2.25.0
        python3-cachetools: Upgrade 5.2.1 -> 5.3.0

  Markus Volk (8):
        webp-pixbuf-loader: add recipe
        freerdp: build the rdp server
        nv-codec-headers: add recipe
        gnome-chess: import recipe
        gnome-shell: update 43.1 -> 43.2
        pipewire: update 0.3.63 -> 0.3.64
        cups-filters: build with dbus support
        cups-pk-helper: add recipe

  Martin Jansa (3):
        s-nail: fix Upstream-Status format
        smartmontools: fix Upstream-Status format
        htop: fix Upstream-Status format

  Niko Mauno (2):
        Fix missing leading whitespace with ':append'
        nftables: Fix missing leading whitespace with ':append'

  Peter Bašista (1):
        Make tvheadend recipe compatible with the latest tvheadend version

  Quentin Schulz (1):
        python3-reedsolo: Add recipe

  Randy MacLeod (2):
        librelp: update to 1.11.0
        rsyslog: update to 8.2212.0

  Richard Hughes (1):
        fwupd: Upgrade to 1.8.9

  Robert Yang (1):
        tftpy: Add it for python tftp server and client

  Ross Burton (3):
        khronos-cts: fix build when python3-build-native is present
        python3-pytest-forked: update for move from picobuild to build
        mbedtls: add option to use PSA for X.509/TLS operations

  Stefan Ghinea (1):
        mbedtls: upgrade to 2.28.2 to fix CVE-2022-46392, CVE-2022-46393

  Trevor Woerner (1):
        psqlodbc: fix HOMEPAGE

  Wang Mingyu (62):
        ctags: upgrade 6.0.20230101.0 -> 6.0.20230108.0
        flatbuffers: upgrade 22.12.06 -> 23.1.4
        libadwaita: upgrade 1.2.0 -> 1.2.1
        hwdata: upgrade 0.365 -> 0.366
        libmoo-perl: upgrade 2.005004 -> 2.005005
        evolution-data-server-native: upgrade 3.46.2 -> 3.46.3
        cli11: upgrade 2.3.1 -> 2.3.2
        imapfilter: upgrade 2.7.6 -> 2.8.1
        libcgi-perl: upgrade 4.54 -> 4.55
        hidapi: upgrade 0.12.0 -> 0.13.0
        python3-lazy-object-proxy: upgrade 1.8.0 -> 1.9.0
        xfsprogs: upgrade 6.0.0 -> 6.1.0
        tbb: upgrade 2021.7.0 -> 2021.8.0
        python3-networkx: upgrade 2.8.8 -> 3.0
        python3-sqlalchemy: upgrade 1.4.45 -> 1.4.46
        python3-aiohue: upgrade 4.5.0 -> 4.6.1
        python3-cachetools: upgrade 5.2.0 -> 5.2.1
        python3-google-api-python-client: upgrade 2.70.0 -> 2.71.0
        python3-flask-migrate: upgrade 4.0.0 -> 4.0.1
        python3-coverage: upgrade 7.0.3 -> 7.0.4
        python3-googleapis-common-protos: upgrade 1.57.0 -> 1.58.0
        python3-ipython: upgrade 8.7.0 -> 8.8.0
        python3-redis: upgrade 4.4.0 -> 4.4.1
        python3-robotframework: upgrade 6.0.1 -> 6.0.2
        python3-uefi-firmware: upgrade 1.9 -> 1.10
        python3-ujson: upgrade 5.6.0 -> 5.7.0
        python3-xlsxwriter: upgrade 3.0.5 -> 3.0.6
        xfsprogs: upgrade 6.1.0 -> 6.1.1
        xfstests: upgrade 2022.12.18 -> 2023.01.01
        eog: upgrade 43.1 -> 43.2
        gvfs: upgrade 1.50.2 -> 1.50.3
        libnma: upgrade 1.10.4 -> 1.10.6
        nautilus: upgrade 43.1 -> 43.2
        nbdkit: upgrade 1.33.4 -> 1.33.7
        networkmanager: upgrade 1.40.0 -> 1.40.10
        tcpdump: upgrade 4.99.2 -> 4.99.3
        unbound: upgrade 1.17.0 -> 1.17.1
        ctags: upgrade 6.0.20230108.0 -> 6.0.20230115.0
        dnfdragora: upgrade 2.1.3 -> 2.1.4
        gensio: upgrade 2.6.1 -> 2.6.2
        hidapi: upgrade 0.13.0 -> 0.13.1
        librelp: upgrade 1.10.0 -> 1.11.0
        libtraceevent: upgrade 1.7.0 -> 1.7.1
        libtracefs: upgrade 1.6.3 -> 1.6.4
        uftrace: upgrade 0.12 -> 0.13
        xterm: upgrade 377 -> 378
        python3-absl: upgrade 1.3.0 -> 1.4.0
        python3-coverage: upgrade 7.0.4 -> 7.0.5
        python3-dateparser: upgrade 1.1.5 -> 1.1.6
        python3-decouple: upgrade 3.6 -> 3.7
        python3-dnspython: upgrade 2.2.1 -> 2.3.0
        python3-flask-wtf: upgrade 1.0.1 -> 1.1.0
        python3-future: upgrade 0.18.2 -> 0.18.3
        python3-google-api-python-client: upgrade 2.71.0 -> 2.72.0
        python3-google-auth: upgrade 2.15.0 -> 2.16.0
        python3-mock: upgrade 5.0.0 -> 5.0.1
        python3-pymodbus: upgrade 3.0.2 -> 3.1.0
        python3-pyzmq: upgrade 24.0.1 -> 25.0.0
        python3-redis: upgrade 4.4.1 -> 4.4.2
        python3-sentry-sdk: upgrade 1.12.1 -> 1.13.0
        python3-txaio: upgrade 22.2.1 -> 23.1.1
        python3-xlsxwriter: upgrade 3.0.6 -> 3.0.7

  Yi Zhao (2):
        freeradius: upgrade 3.0.21 -> 3.0.26
        strongswan: upgrade 5.9.8 -> 5.9.9

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I625cfaa0bd5052cd72a121f010db3ecd2f274caf
diff --git a/poky/bitbake/lib/bb/cache.py b/poky/bitbake/lib/bb/cache.py
index ee924b2..b309775 100644
--- a/poky/bitbake/lib/bb/cache.py
+++ b/poky/bitbake/lib/bb/cache.py
@@ -838,11 +838,10 @@
         self.cachedata = self.create_cachedata()
         self.cachedata_extras = self.create_cachedata()
 
-    def init_cache(self, d, cache_file_name=None):
-        cachedir = (d.getVar("PERSISTENT_DIR") or
-                    d.getVar("CACHE"))
-        if cachedir in [None, '']:
+    def init_cache(self, cachedir, cache_file_name=None):
+        if not cachedir:
             return
+
         bb.utils.mkdirhier(cachedir)
         self.cachefile = os.path.join(cachedir,
                                       cache_file_name or self.__class__.cache_file_name)
@@ -873,6 +872,10 @@
         if not self.cachefile:
             return
 
+        have_data = any(self.cachedata_extras)
+        if not have_data:
+            return
+
         glf = bb.utils.lockfile(self.cachefile + ".lock", shared=True)
 
         i = os.getpid()
@@ -907,6 +910,8 @@
 
         data = self.cachedata
 
+        have_data = False
+
         for f in [y for y in os.listdir(os.path.dirname(self.cachefile)) if y.startswith(os.path.basename(self.cachefile) + '-')]:
             f = os.path.join(os.path.dirname(self.cachefile), f)
             try:
@@ -921,12 +926,14 @@
                 os.unlink(f)
                 continue
 
+            have_data = True
             self.merge_data(extradata, data)
             os.unlink(f)
 
-        with open(self.cachefile, "wb") as f:
-            p = pickle.Pickler(f, -1)
-            p.dump([data, self.__class__.CACHE_VERSION])
+        if have_data:
+            with open(self.cachefile, "wb") as f:
+                p = pickle.Pickler(f, -1)
+                p.dump([data, self.__class__.CACHE_VERSION])
 
         bb.utils.unlockfile(glf)
 
diff --git a/poky/bitbake/lib/bb/codeparser.py b/poky/bitbake/lib/bb/codeparser.py
index ecae7b0..d6b8102 100644
--- a/poky/bitbake/lib/bb/codeparser.py
+++ b/poky/bitbake/lib/bb/codeparser.py
@@ -184,12 +184,12 @@
         self.shellcachelines[h] = cacheline
         return cacheline
 
-    def init_cache(self, d):
+    def init_cache(self, cachedir):
         # Check if we already have the caches
         if self.pythoncache:
             return
 
-        MultiProcessCache.init_cache(self, d)
+        MultiProcessCache.init_cache(self, cachedir)
 
         # cachedata gets re-assigned in the parent
         self.pythoncache = self.cachedata[0]
@@ -201,8 +201,8 @@
 
 codeparsercache = CodeParserCache()
 
-def parser_cache_init(d):
-    codeparsercache.init_cache(d)
+def parser_cache_init(cachedir):
+    codeparsercache.init_cache(cachedir)
 
 def parser_cache_save():
     codeparsercache.save_extras()
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index cfaa7cb..c5e9fa2 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -2187,12 +2187,11 @@
         self.num_processes = min(int(self.cfgdata.getVar("BB_NUMBER_PARSE_THREADS") or
                                  multiprocessing.cpu_count()), self.toparse)
 
+        bb.cache.SiggenRecipeInfo.reset()
         self.start()
         self.haveshutdown = False
         self.syncthread = None
 
-        bb.cache.SiggenRecipeInfo.reset()
-
     def start(self):
         self.results = self.load_cached()
         self.processes = []
@@ -2231,6 +2230,14 @@
         else:
             bb.error("Parsing halted due to errors, see error messages above")
 
+        # Cleanup the queue before call process.join(), otherwise there might be
+        # deadlocks.
+        while True:
+            try:
+               self.result_queue.get(timeout=0.25)
+            except queue.Empty:
+                break
+
         def sync_caches():
             for c in self.bb_caches.values():
                 bb.cache.SiggenRecipeInfo.reset()
@@ -2241,14 +2248,6 @@
 
         self.parser_quit.set()
 
-        # Cleanup the queue before call process.join(), otherwise there might be
-        # deadlocks.
-        while True:
-            try:
-               self.result_queue.get(timeout=0.25)
-            except queue.Empty:
-                break
-
         for process in self.processes:
             process.join(0.5)
 
@@ -2269,7 +2268,7 @@
             if hasattr(process, "close"):
                 process.close()
 
-
+        bb.codeparser.parser_cache_save()
         bb.codeparser.parser_cache_savemerge()
         bb.cache.SiggenRecipeInfo.reset()
         bb.fetch.fetcher_parse_done()
diff --git a/poky/bitbake/lib/bb/cookerdata.py b/poky/bitbake/lib/bb/cookerdata.py
index c6b5658..1658bee 100644
--- a/poky/bitbake/lib/bb/cookerdata.py
+++ b/poky/bitbake/lib/bb/cookerdata.py
@@ -271,7 +271,6 @@
             if self.data.getVar("BB_WORKERCONTEXT", False) is None and not worker:
                 bb.fetch.fetcher_init(self.data)
             bb.parse.init_parser(self.data)
-            bb.codeparser.parser_cache_init(self.data)
 
             bb.event.fire(bb.event.ConfigParsed(), self.data)
 
@@ -370,6 +369,11 @@
             data.setVar("TOPDIR", os.path.dirname(os.path.dirname(layerconf)))
             data = parse_config_file(layerconf, data)
 
+            if not data.getVar("BB_CACHEDIR"):
+                data.setVar("BB_CACHEDIR", "${TOPDIR}/cache")
+
+            bb.codeparser.parser_cache_init(data.getVar("BB_CACHEDIR"))
+
             layers = (data.getVar('BBLAYERS') or "").split()
             broken_layers = []
 
@@ -473,6 +477,9 @@
 
         if not data.getVar("TOPDIR"):
             data.setVar("TOPDIR", os.path.abspath(os.getcwd()))
+        if not data.getVar("BB_CACHEDIR"):
+            data.setVar("BB_CACHEDIR", "${TOPDIR}/cache")
+        bb.codeparser.parser_cache_init(data.getVar("BB_CACHEDIR"))
 
         data = parse_config_file(os.path.join("conf", "bitbake.conf"), data)
 
diff --git a/poky/bitbake/lib/bb/data.py b/poky/bitbake/lib/bb/data.py
index 8413696..f3ae062 100644
--- a/poky/bitbake/lib/bb/data.py
+++ b/poky/bitbake/lib/bb/data.py
@@ -261,7 +261,7 @@
                newdeps |= set((d.getVarFlag(dep, "vardeps") or "").split())
         newdeps -= seen
 
-def build_dependencies(key, keys, mod_funcs, shelldeps, varflagsexcl, ignored_vars, d):
+def build_dependencies(key, keys, mod_funcs, shelldeps, varflagsexcl, ignored_vars, d, codeparsedata):
     def handle_contains(value, contains, exclusions, d):
         newvalue = []
         if value:
@@ -312,14 +312,14 @@
             value = varflags.get("vardepvalue")
         elif varflags.get("func"):
             if varflags.get("python"):
-                value = d.getVarFlag(key, "_content", False)
+                value = codeparsedata.getVarFlag(key, "_content", False)
                 parser = bb.codeparser.PythonParser(key, logger)
                 parser.parse_python(value, filename=varflags.get("filename"), lineno=varflags.get("lineno"))
                 deps = deps | parser.references
                 deps = deps | (keys & parser.execs)
                 value = handle_contains(value, parser.contains, exclusions, d)
             else:
-                value, parsedvar = d.getVarFlag(key, "_content", False, retparser=True)
+                value, parsedvar = codeparsedata.getVarFlag(key, "_content", False, retparser=True)
                 parser = bb.codeparser.ShellParser(key, logger)
                 parser.parse_shell(parsedvar.value)
                 deps = deps | shelldeps
@@ -378,12 +378,17 @@
     shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export", False) and not d.getVarFlag(key, "unexport", False))
     varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS')
 
+    codeparserd = d.createCopy()
+    for forced in (d.getVar('BB_HASH_CODEPARSER_VALS') or "").split():
+        key, value = forced.split("=", 1)
+        codeparserd.setVar(key, value)
+
     deps = {}
     values = {}
 
     tasklist = d.getVar('__BBTASKS', False) or []
     for task in tasklist:
-        deps[task], values[task] = build_dependencies(task, keys, mod_funcs, shelldeps, varflagsexcl, ignored_vars, d)
+        deps[task], values[task] = build_dependencies(task, keys, mod_funcs, shelldeps, varflagsexcl, ignored_vars, d, codeparserd)
         newdeps = deps[task]
         seen = set()
         while newdeps:
@@ -392,7 +397,7 @@
             newdeps = set()
             for dep in nextdeps:
                 if dep not in deps:
-                    deps[dep], values[dep] = build_dependencies(dep, keys, mod_funcs, shelldeps, varflagsexcl, ignored_vars, d)
+                    deps[dep], values[dep] = build_dependencies(dep, keys, mod_funcs, shelldeps, varflagsexcl, ignored_vars, d, codeparserd)
                 newdeps |=  deps[dep]
             newdeps -= seen
         #print "For %s: %s" % (task, str(deps[task]))
diff --git a/poky/bitbake/lib/bb/data_smart.py b/poky/bitbake/lib/bb/data_smart.py
index e2c9359..c597dba 100644
--- a/poky/bitbake/lib/bb/data_smart.py
+++ b/poky/bitbake/lib/bb/data_smart.py
@@ -515,18 +515,18 @@
         dest = self.dict
         while dest:
             if var in dest:
-                return dest[var], self.overridedata.get(var, None)
+                return dest[var]
 
             if "_data" not in dest:
                 break
             dest = dest["_data"]
-        return None, self.overridedata.get(var, None)
+        return None
 
     def _makeShadowCopy(self, var):
         if var in self.dict:
             return
 
-        local_var, _ = self._findVar(var)
+        local_var = self._findVar(var)
 
         if local_var:
             self.dict[var] = copy.copy(local_var)
@@ -782,10 +782,12 @@
         if expand and cachename in self.expand_cache:
             return self.expand_cache[cachename].value
 
-        local_var, overridedata = self._findVar(var)
+        local_var = self._findVar(var)
         value = None
         removes = set()
-        if flag == "_content" and overridedata is not None and not parsing:
+        if flag == "_content" and not parsing:
+            overridedata = self.overridedata.get(var, None)
+        if flag == "_content" and not parsing and overridedata is not None:
             match = False
             active = {}
             self.need_overrides()
@@ -900,7 +902,7 @@
     def delVarFlag(self, var, flag, **loginfo):
         self.expand_cache = {}
 
-        local_var, _ = self._findVar(var)
+        local_var = self._findVar(var)
         if not local_var:
             return
         if not var in self.dict:
@@ -943,7 +945,7 @@
             self.dict[var][i] = flags[i]
 
     def getVarFlags(self, var, expand = False, internalflags=False):
-        local_var, _ = self._findVar(var)
+        local_var = self._findVar(var)
         flags = {}
 
         if local_var:
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index 893ec6f..5a7a602 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -469,6 +469,7 @@
                     basename = os.path.basename(mirrortarball)
                     # Kill parameters, they make no sense for mirror tarballs
                     uri_decoded[5] = {}
+                    uri_find_decoded[5] = {}
                 elif ud.localpath and ud.method.supports_checksum(ud):
                     basename = os.path.basename(ud.localpath)
                 if basename:
@@ -517,7 +518,7 @@
     else:
         raise FetchError("Invalid SRCREV cache policy of: %s" % srcrev_policy)
 
-    _checksum_cache.init_cache(d)
+    _checksum_cache.init_cache(d.getVar("BB_CACHEDIR"))
 
     for m in methods:
         if hasattr(m, "init"):
diff --git a/poky/bitbake/lib/bb/persist_data.py b/poky/bitbake/lib/bb/persist_data.py
index ce84a15..bcca791 100644
--- a/poky/bitbake/lib/bb/persist_data.py
+++ b/poky/bitbake/lib/bb/persist_data.py
@@ -249,4 +249,23 @@
 
     bb.utils.mkdirhier(cachedir)
     cachefile = os.path.join(cachedir, "bb_persist_data.sqlite3")
-    return SQLTable(cachefile, domain)
+
+    try:
+        return SQLTable(cachefile, domain)
+    except sqlite3.OperationalError:
+        # Sqlite fails to open database when its path is too long.
+        # After testing, 504 is the biggest path length that can be opened by
+        # sqlite.
+        # Note: This code is called before sanity.bbclass and its path length
+        # check
+        max_len = 504
+        if len(cachefile) > max_len:
+            logger.critical("The path of the cache file is too long "
+                    "({0} chars > {1}) to be opened by sqlite! "
+                    "Your cache file is \"{2}\"".format(
+                        len(cachefile),
+                        max_len,
+                        cachefile))
+            sys.exit(1)
+        else:
+            raise
diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py
index 529196b..916ee0a 100644
--- a/poky/bitbake/lib/bb/server/process.py
+++ b/poky/bitbake/lib/bb/server/process.py
@@ -361,20 +361,21 @@
             except FileNotFoundError:
                 return None
 
-        lockcontents = get_lock_contents(lockfile)
-        serverlog("Original lockfile contents: " + str(lockcontents))
-
         lock.close()
         lock = None
 
         while not lock:
             i = 0
             lock = None
+            if not os.path.exists(os.path.basename(lockfile)):
+                serverlog("Lockfile directory gone, exiting.")
+                return
+
             while not lock and i < 30:
                 lock = bb.utils.lockfile(lockfile, shared=False, retry=False, block=False)
                 if not lock:
                     newlockcontents = get_lock_contents(lockfile)
-                    if newlockcontents != lockcontents:
+                    if not newlockcontents[0].startswith([os.getpid() + "\n", os.getpid() + " "]):
                         # A new server was started, the lockfile contents changed, we can exit
                         serverlog("Lockfile now contains different contents, exiting: " + str(newlockcontents))
                         return
diff --git a/poky/bitbake/lib/bb/tests/codeparser.py b/poky/bitbake/lib/bb/tests/codeparser.py
index a508f23..7f5d59c 100644
--- a/poky/bitbake/lib/bb/tests/codeparser.py
+++ b/poky/bitbake/lib/bb/tests/codeparser.py
@@ -318,7 +318,7 @@
             "filename": "example.bb",
         })
 
-        deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), set(), self.d)
+        deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), set(), self.d, self.d)
 
         self.assertEqual(deps, set(["somevar", "bar", "something", "inexpand", "test", "test2", "a"]))
 
@@ -365,7 +365,7 @@
         self.d.setVarFlags("FOO", {"func": True})
         self.setEmptyVars(execs)
 
-        deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), set(), self.d)
+        deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), set(), self.d, self.d)
 
         self.assertEqual(deps, set(["somevar", "inverted"] + execs))
 
@@ -375,7 +375,7 @@
         self.d.setVar("FOO", "foo=oe_libinstall; eval $foo")
         self.d.setVarFlag("FOO", "vardeps", "oe_libinstall")
 
-        deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), set(), self.d)
+        deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), set(), self.d, self.d)
 
         self.assertEqual(deps, set(["oe_libinstall"]))
 
@@ -384,7 +384,7 @@
         self.d.setVar("FOO", "foo=oe_libinstall; eval $foo")
         self.d.setVarFlag("FOO", "vardeps", "${@'oe_libinstall'}")
 
-        deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), set(), self.d)
+        deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), set(), self.d, self.d)
 
         self.assertEqual(deps, set(["oe_libinstall"]))
 
@@ -399,7 +399,7 @@
         # Check dependencies
         self.d.setVar('ANOTHERVAR', expr)
         self.d.setVar('TESTVAR', 'anothervalue testval testval2')
-        deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), set(), self.d)
+        deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), set(), self.d, self.d)
         self.assertEqual(sorted(values.splitlines()),
                          sorted([expr,
                           'TESTVAR{anothervalue} = Set',
@@ -418,14 +418,14 @@
         self.d.setVar('ANOTHERVAR', varval)
         self.d.setVar('TESTVAR', 'anothervalue testval testval2')
         self.d.setVar('TESTVAR2', 'testval3')
-        deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), set(["TESTVAR"]), self.d)
+        deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), set(["TESTVAR"]), self.d, self.d)
         self.assertEqual(sorted(values.splitlines()), sorted([varval]))
         self.assertEqual(deps, set(["TESTVAR2"]))
         self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval3', 'anothervalue'])
 
         # Check the vardepsexclude flag is handled by contains functionality
         self.d.setVarFlag('ANOTHERVAR', 'vardepsexclude', 'TESTVAR')
-        deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), set(), self.d)
+        deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), set(), self.d, self.d)
         self.assertEqual(sorted(values.splitlines()), sorted([varval]))
         self.assertEqual(deps, set(["TESTVAR2"]))
         self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval3', 'anothervalue'])
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index ad3d4de..f389032 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -2852,7 +2852,7 @@
         os.mkdir(self.mirrordir)
         self.reponame = "bitbake"
         self.gitdir = os.path.join(self.tempdir, "git", self.reponame)
-        self.recipe_url = "git://git.fake.repo/bitbake"
+        self.recipe_url = "git://git.fake.repo/bitbake;branch=master"
         self.d.setVar("BB_FETCH_PREMIRRORONLY", "1")
         self.d.setVar("BB_NO_NETWORK", "1")
         self.d.setVar("PREMIRRORS", self.recipe_url + " " + "file://{}".format(self.mirrordir) + " \n")
@@ -2936,6 +2936,50 @@
         with self.assertRaises(bb.fetch2.NetworkAccess):
             fetcher.download()
 
+class FetchPremirroronlyMercurialTest(FetcherTest):
+    """ Test for premirrors with mercurial repos
+        the test covers also basic hg:// clone (see fetch_and_create_tarball
+    """
+    def skipIfNoHg():
+        import shutil
+        if not shutil.which('hg'):
+            return unittest.skip('Mercurial not installed')
+        return lambda f: f
+
+    def setUp(self):
+        super(FetchPremirroronlyMercurialTest, self).setUp()
+        self.mirrordir = os.path.join(self.tempdir, "mirrors")
+        os.mkdir(self.mirrordir)
+        self.reponame = "libgnt"
+        self.clonedir = os.path.join(self.tempdir, "hg")
+        self.recipe_url = "hg://keep.imfreedom.org/libgnt;module=libgnt"
+        self.d.setVar("SRCREV", "53e8b422faaf")
+        self.mirrorname = "hg_libgnt_keep.imfreedom.org_.libgnt.tar.gz"
+
+    def fetch_and_create_tarball(self):
+        """
+        Ask bitbake to download repo and prepare mirror tarball for us
+        """
+        self.d.setVar("BB_GENERATE_MIRROR_TARBALLS", "1")
+        fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
+        fetcher.download()
+        mirrorfile = os.path.join(self.d.getVar("DL_DIR"), self.mirrorname)
+        self.assertTrue(os.path.exists(mirrorfile), "Mirror tarball {} has not been created".format(mirrorfile))
+        ## moving tarball to mirror directory
+        os.rename(mirrorfile, os.path.join(self.mirrordir, self.mirrorname))
+        self.d.setVar("BB_GENERATE_MIRROR_TARBALLS", "0")
+
+
+    @skipIfNoNetwork()
+    @skipIfNoHg()
+    def test_premirror_mercurial(self):
+        self.fetch_and_create_tarball()
+        self.d.setVar("PREMIRRORS", self.recipe_url + " " + "file://{}".format(self.mirrordir) + " \n")
+        self.d.setVar("BB_FETCH_PREMIRRORONLY", "1")
+        self.d.setVar("BB_NO_NETWORK", "1")
+        fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
+        fetcher.download()
+
 class FetchPremirroronlyBrokenTarball(FetcherTest):
 
     def setUp(self):
diff --git a/poky/bitbake/lib/bb/ui/taskexp.py b/poky/bitbake/lib/bb/ui/taskexp.py
index c00eaf6..bedfd69 100644
--- a/poky/bitbake/lib/bb/ui/taskexp.py
+++ b/poky/bitbake/lib/bb/ui/taskexp.py
@@ -177,7 +177,7 @@
     quit = threading.Event()
     def __init__(self, shutdown):
         threading.Thread.__init__(self)
-        self.setDaemon(True)
+        self.daemon = True
         self.shutdown = shutdown
         if not Gtk.init_check()[0]:
             sys.stderr.write("Gtk+ init failed. Make sure DISPLAY variable is set.\n")
diff --git a/poky/bitbake/lib/bb/ui/uievent.py b/poky/bitbake/lib/bb/ui/uievent.py
index adbe698..c2f830d 100644
--- a/poky/bitbake/lib/bb/ui/uievent.py
+++ b/poky/bitbake/lib/bb/ui/uievent.py
@@ -65,7 +65,7 @@
         self.server = server
 
         self.t = threading.Thread()
-        self.t.setDaemon(True)
+        self.t.daemon = True
         self.t.run = self.startCallbackHandler
         self.t.start()
 
diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py
index 8c79159..4446997 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -1699,23 +1699,20 @@
 
 def export_proxies(d):
     """ export common proxies variables from datastore to environment """
-    import os
 
     variables = ['http_proxy', 'HTTP_PROXY', 'https_proxy', 'HTTPS_PROXY',
                     'ftp_proxy', 'FTP_PROXY', 'no_proxy', 'NO_PROXY',
-                    'GIT_PROXY_COMMAND']
-    exported = False
+                    'GIT_PROXY_COMMAND', 'SSL_CERT_FILE', 'SSL_CERT_DIR']
 
-    for v in variables:
-        if v in os.environ.keys():
-            exported = True
-        else:
-            v_proxy = d.getVar(v)
-            if v_proxy is not None:
-                os.environ[v] = v_proxy
-                exported = True
+    origenv = d.getVar("BB_ORIGENV")
 
-    return exported
+    for name in variables:
+        value = d.getVar(name)
+        if not value and origenv:
+            value = origenv.getVar(name)
+        if value:
+            os.environ[name] = value
+
 
 
 def load_plugins(logger, plugins, pluginpath):
diff --git a/poky/bitbake/lib/toaster/orm/fixtures/gen_fixtures.py b/poky/bitbake/lib/toaster/orm/fixtures/gen_fixtures.py
index ad20d6b..69f5576 100755
--- a/poky/bitbake/lib/toaster/orm/fixtures/gen_fixtures.py
+++ b/poky/bitbake/lib/toaster/orm/fixtures/gen_fixtures.py
@@ -35,26 +35,18 @@
 # [Codename, Yocto Project Version, Release Date, Current Version, Support Level, Poky Version, BitBake branch]
 current_releases = [
     # Release slot #1
-    ['Kirkstone','4.0','April 2022','4.0.5 (October 2022)','Stable - Long Term Support (until Apr. 2024)','','2.0'],
+    ['Kirkstone','4.0','April 2022','4.0.6 (December 2022)','Stable - Long Term Support (until Apr. 2024)','','2.0'],
     # Release slot #2 'local'
     ['HEAD','HEAD','','Local Yocto Project','HEAD','','HEAD'],
     # Release slot #3 'master'
     ['Master','master','','Yocto Project master','master','','master'],
     # Release slot #4
-    ['Langdale','4.1','October 2022','4.1.1 (November 2022)','Support for 7 months (until May 2023)','','2.2'],
+    ['Langdale','4.1','October 2022','4.1.2 (January 2023)','Support for 7 months (until May 2023)','','2.2'],
 #   ['Honister','3.4','October 2021','3.4.2 (February 2022)','Support for 7 months (until May 2022)','26.0','1.52'],
-#   ['Gatesgarth','3.2','Oct 2020','3.2.4 (May 2021)','EOL','24.0','1.48'],
-    # Optional Release slot #4
-    # 'dunfell' seems to have a bug:
-    # Bitbake crash
-    # Traceback (most recent call last):
-    # File "/home/usersetup/poky/bitbake/lib/bb/ui/toasterui.py", line 337, in main
-    #   buildinfohelper.update_and_store_task(event)
-    #   File "/home/usersetup/poky/bitbake/lib/bb/ui/buildinfohelper.py", line 1267, in update_and_store_task
-    #   assert identifier in self.internal_state['taskdata']
-    #   AssertionError
-#   ['Dunfell','3.1','April 2021','3.1.20 (October 2022)','Stable - Long Term Support (until Apr. 2024)','23.0','1.46'],
 #   ['Hardknott','3.3','April 2021','3.3.5 (March 2022)','Stable - Support for 13 months (until Apr. 2022)','25.0','1.50'],
+#   ['Gatesgarth','3.2','Oct 2020','3.2.4 (May 2021)','EOL','24.0','1.48'],
+    # Optional Release slot #5
+    ['Dunfell','3.1','April 2020','3.1.22 (January 2023)','Stable - Long Term Support (until Apr. 2024)','23.0','1.46'],
 ]
 
 default_poky_layers = [
diff --git a/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml b/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml
index b83b94d..615e88a 100644
--- a/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml
+++ b/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml
@@ -27,6 +27,11 @@
     <field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
     <field type="CharField" name="branch">2.2</field>
   </object>
+  <object model="orm.bitbakeversion" pk="5">
+    <field type="CharField" name="name">dunfell</field>
+    <field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
+    <field type="CharField" name="branch">1.46</field>
+  </object>
 
   <!-- Releases available -->
   <object model="orm.release" pk="1">
@@ -57,6 +62,13 @@
     <field type="CharField" name="branch_name">langdale</field>
     <field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href=\"https://cgit.openembedded.org/openembedded-core/log/?h=langdale\"&gt;OpenEmbedded Langdale&lt;/a&gt; branch.</field>
   </object>
+  <object model="orm.release" pk="5">
+    <field type="CharField" name="name">dunfell</field>
+    <field type="CharField" name="description">Openembedded Dunfell</field>
+    <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">5</field>
+    <field type="CharField" name="branch_name">dunfell</field>
+    <field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href=\"https://cgit.openembedded.org/openembedded-core/log/?h=dunfell\"&gt;OpenEmbedded Dunfell&lt;/a&gt; branch.</field>
+  </object>
 
   <!-- Default layers for each release -->
   <object model="orm.releasedefaultlayer" pk="1">
@@ -75,6 +87,10 @@
     <field rel="ManyToOneRel" to="orm.release" name="release">4</field>
     <field type="CharField" name="layer_name">openembedded-core</field>
   </object>
+  <object model="orm.releasedefaultlayer" pk="5">
+    <field rel="ManyToOneRel" to="orm.release" name="release">5</field>
+    <field type="CharField" name="layer_name">openembedded-core</field>
+  </object>
 
 
   <!-- Layer for the Local release -->
diff --git a/poky/bitbake/lib/toaster/orm/fixtures/poky.xml b/poky/bitbake/lib/toaster/orm/fixtures/poky.xml
index 6d58a4f..04e12f9 100644
--- a/poky/bitbake/lib/toaster/orm/fixtures/poky.xml
+++ b/poky/bitbake/lib/toaster/orm/fixtures/poky.xml
@@ -31,6 +31,12 @@
     <field type="CharField" name="branch">langdale</field>
     <field type="CharField" name="dirpath">bitbake</field>
   </object>
+  <object model="orm.bitbakeversion" pk="5">
+    <field type="CharField" name="name">dunfell</field>
+    <field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
+    <field type="CharField" name="branch">dunfell</field>
+    <field type="CharField" name="dirpath">bitbake</field>
+  </object>
 
 
   <!-- Releases available -->
@@ -62,6 +68,13 @@
     <field type="CharField" name="branch_name">langdale</field>
     <field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=langdale"&gt;Yocto Project Langdale branch&lt;/a&gt;.</field>
   </object>
+  <object model="orm.release" pk="5">
+    <field type="CharField" name="name">dunfell</field>
+    <field type="CharField" name="description">Yocto Project 3.1 "Dunfell"</field>
+    <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">5</field>
+    <field type="CharField" name="branch_name">dunfell</field>
+    <field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=dunfell"&gt;Yocto Project Dunfell branch&lt;/a&gt;.</field>
+  </object>
 
   <!-- Default project layers for each release -->
   <object model="orm.releasedefaultlayer" pk="1">
@@ -112,6 +125,18 @@
     <field rel="ManyToOneRel" to="orm.release" name="release">4</field>
     <field type="CharField" name="layer_name">meta-yocto-bsp</field>
   </object>
+  <object model="orm.releasedefaultlayer" pk="13">
+    <field rel="ManyToOneRel" to="orm.release" name="release">5</field>
+    <field type="CharField" name="layer_name">openembedded-core</field>
+  </object>
+  <object model="orm.releasedefaultlayer" pk="14">
+    <field rel="ManyToOneRel" to="orm.release" name="release">5</field>
+    <field type="CharField" name="layer_name">meta-poky</field>
+  </object>
+  <object model="orm.releasedefaultlayer" pk="15">
+    <field rel="ManyToOneRel" to="orm.release" name="release">5</field>
+    <field type="CharField" name="layer_name">meta-yocto-bsp</field>
+  </object>
 
   <!-- Default layers provided by poky
        openembedded-core
@@ -155,6 +180,13 @@
     <field type="CharField" name="branch">langdale</field>
     <field type="CharField" name="dirpath">meta</field>
   </object>
+  <object model="orm.layer_version" pk="5">
+    <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
+    <field type="IntegerField" name="layer_source">0</field>
+    <field rel="ManyToOneRel" to="orm.release" name="release">5</field>
+    <field type="CharField" name="branch">dunfell</field>
+    <field type="CharField" name="dirpath">meta</field>
+  </object>
 
   <object model="orm.layer" pk="2">
     <field type="CharField" name="name">meta-poky</field>
@@ -164,14 +196,14 @@
     <field type="CharField" name="vcs_web_tree_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
     <field type="CharField" name="vcs_web_file_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
   </object>
-  <object model="orm.layer_version" pk="5">
+  <object model="orm.layer_version" pk="6">
     <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
     <field type="IntegerField" name="layer_source">0</field>
     <field rel="ManyToOneRel" to="orm.release" name="release">1</field>
     <field type="CharField" name="branch">kirkstone</field>
     <field type="CharField" name="dirpath">meta-poky</field>
   </object>
-  <object model="orm.layer_version" pk="6">
+  <object model="orm.layer_version" pk="7">
     <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
     <field type="IntegerField" name="layer_source">0</field>
     <field rel="ManyToOneRel" to="orm.release" name="release">2</field>
@@ -179,20 +211,27 @@
     <field type="CharField" name="commit">HEAD</field>
     <field type="CharField" name="dirpath">meta-poky</field>
   </object>
-  <object model="orm.layer_version" pk="7">
+  <object model="orm.layer_version" pk="8">
     <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
     <field type="IntegerField" name="layer_source">0</field>
     <field rel="ManyToOneRel" to="orm.release" name="release">3</field>
     <field type="CharField" name="branch">master</field>
     <field type="CharField" name="dirpath">meta-poky</field>
   </object>
-  <object model="orm.layer_version" pk="8">
+  <object model="orm.layer_version" pk="9">
     <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
     <field type="IntegerField" name="layer_source">0</field>
     <field rel="ManyToOneRel" to="orm.release" name="release">4</field>
     <field type="CharField" name="branch">langdale</field>
     <field type="CharField" name="dirpath">meta-poky</field>
   </object>
+  <object model="orm.layer_version" pk="10">
+    <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
+    <field type="IntegerField" name="layer_source">0</field>
+    <field rel="ManyToOneRel" to="orm.release" name="release">5</field>
+    <field type="CharField" name="branch">dunfell</field>
+    <field type="CharField" name="dirpath">meta-poky</field>
+  </object>
 
   <object model="orm.layer" pk="3">
     <field type="CharField" name="name">meta-yocto-bsp</field>
@@ -202,14 +241,14 @@
     <field type="CharField" name="vcs_web_tree_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
     <field type="CharField" name="vcs_web_file_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
   </object>
-  <object model="orm.layer_version" pk="9">
+  <object model="orm.layer_version" pk="11">
     <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
     <field type="IntegerField" name="layer_source">0</field>
     <field rel="ManyToOneRel" to="orm.release" name="release">1</field>
     <field type="CharField" name="branch">kirkstone</field>
     <field type="CharField" name="dirpath">meta-yocto-bsp</field>
   </object>
-  <object model="orm.layer_version" pk="10">
+  <object model="orm.layer_version" pk="12">
     <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
     <field type="IntegerField" name="layer_source">0</field>
     <field rel="ManyToOneRel" to="orm.release" name="release">2</field>
@@ -217,18 +256,25 @@
     <field type="CharField" name="commit">HEAD</field>
     <field type="CharField" name="dirpath">meta-yocto-bsp</field>
   </object>
-  <object model="orm.layer_version" pk="11">
+  <object model="orm.layer_version" pk="13">
     <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
     <field type="IntegerField" name="layer_source">0</field>
     <field rel="ManyToOneRel" to="orm.release" name="release">3</field>
     <field type="CharField" name="branch">master</field>
     <field type="CharField" name="dirpath">meta-yocto-bsp</field>
   </object>
-  <object model="orm.layer_version" pk="12">
+  <object model="orm.layer_version" pk="14">
     <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
     <field type="IntegerField" name="layer_source">0</field>
     <field rel="ManyToOneRel" to="orm.release" name="release">4</field>
     <field type="CharField" name="branch">langdale</field>
     <field type="CharField" name="dirpath">meta-yocto-bsp</field>
   </object>
+  <object model="orm.layer_version" pk="15">
+    <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
+    <field type="IntegerField" name="layer_source">0</field>
+    <field rel="ManyToOneRel" to="orm.release" name="release">5</field>
+    <field type="CharField" name="branch">dunfell</field>
+    <field type="CharField" name="dirpath">meta-yocto-bsp</field>
+  </object>
 </django-objects>
diff --git a/poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py b/poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py
index eb09755..6d64830 100644
--- a/poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py
+++ b/poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py
@@ -40,7 +40,7 @@
     """ A simple progress spinner to indicate download/parsing is happening"""
     def __init__(self, *args, **kwargs):
         super(Spinner, self).__init__(*args, **kwargs)
-        self.setDaemon(True)
+        self.daemon = True
         self.signal = True
 
     def run(self):
diff --git a/poky/bitbake/lib/toaster/tests/commands/test_runbuilds.py b/poky/bitbake/lib/toaster/tests/commands/test_runbuilds.py
index e223b95..c77d6cf 100644
--- a/poky/bitbake/lib/toaster/tests/commands/test_runbuilds.py
+++ b/poky/bitbake/lib/toaster/tests/commands/test_runbuilds.py
@@ -24,7 +24,7 @@
     """ Kill the runbuilds process after an amount of time """
     def __init__(self, *args, **kwargs):
         super(KillRunbuilds, self).__init__(*args, **kwargs)
-        self.setDaemon(True)
+        self.daemon = True
 
     def run(self):
         time.sleep(5)