diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.6.bb b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.7.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.6.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.7.bb
index 10ac03e..4911b3d 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.6.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.7.bb
@@ -6,7 +6,7 @@
 DEPENDS = "ell"
 
 SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git"
-SRCREV = "ad97f4f945b828425ff288e905523e11b330d41d"
+SRCREV = "ef6084dcb4fe2e00327bb9c7b113ece204042c22"
 S = "${WORKDIR}/git"
 
 inherit autotools manpages pkgconfig python3native systemd
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.8.bb b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.12.bb
similarity index 85%
rename from meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.8.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.12.bb
index 124b0f1..6f86385 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.8.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.12.bb
@@ -14,7 +14,8 @@
 SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
            "
 
-SRC_URI[sha256sum] = "c793db2c91d7928160341b357b26315d9c879ecb36699cb7a6b36054cba60893"
+SRC_URI[md5sum] = "7e6e49fddb9ae2b6fcde14619d6cfe49"
+SRC_URI[sha256sum] = "2d3b91a2b8a882b17b16403c9ef7bdce522db4f0ceaa3e4dff76033885428b69"
 
 PACKAGECONFIG ??= "udev mbim"
 PACKAGECONFIG[udev] = ",--without-udev,libgudev"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.8.bb b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.10.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.8.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.10.bb
index 47a86b9..deab6f0 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.8.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.10.bb
@@ -14,7 +14,7 @@
 SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz \
            "
 
-SRC_URI[sha256sum] = "68b53d0615ba0d3e2bbf386ed029dfe644a6a30a79ab8d85523527bb4e713aff"
+SRC_URI[sha256sum] = "b2b3058bbb72adf98b24707fdbebe58e590644a38145e30d574f685f154bf8aa"
 
 S = "${WORKDIR}/ModemManager-${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.1.5.bb b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.1.8.bb
similarity index 69%
rename from meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.1.5.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.1.8.bb
index 0df134e..4a91fa4 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.1.8.bb
@@ -9,8 +9,9 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
 
-SRC_URI[md5sum] = "52c5e56d2d54ced0cdeb764a7e8fec92"
-SRC_URI[sha256sum] = "df904d271eb161c265c956f0cb938dd0a375dda4a919a344f73b08bc50b9f308"
+SRC_URI[sha256sum] = "cffb5147021202b064eb0a9389d0db63d1bb2dcde5a896f7785f97b1b5f51a72"
+
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/ser2net/files/ser2net"
 
 inherit autotools pkgconfig
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/transmission/files/0001-configure.ac-Fix-no-libsystemd-daemon.patch b/meta-openembedded/meta-oe/recipes-connectivity/transmission/files/0001-configure.ac-Fix-no-libsystemd-daemon.patch
new file mode 100644
index 0000000..130ead0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/transmission/files/0001-configure.ac-Fix-no-libsystemd-daemon.patch
@@ -0,0 +1,40 @@
+From 73ee7e68402a77287054df779f0e44ae1a4f9f0b Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Mon, 11 May 2020 17:01:35 +0000
+Subject: [PATCH] configure.ac: Fix no libsystemd-daemon
+
+Replace libsystemd-daemon with libsystemd.
+
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+---
+ configure.ac | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index df8cb5007..9a6fb9b2e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -249,10 +249,10 @@ AC_ARG_WITH([systemd-daemon], AS_HELP_STRING([--with-systemd-daemon],
+             [Add support for systemd startup notification (default is autodetected)]),
+             [USE_SYSTEMD_DAEMON=$withval], [USE_SYSTEMD_DAEMON=auto])
+ AS_IF([test "x$USE_SYSTEMD_DAEMON" != "xno"], [
+-    PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
++    PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd],
+         [AC_DEFINE(USE_SYSTEMD_DAEMON,1,[Use systemd startup notification])],
+         [AS_IF([test "x$USE_SYSTEMD_DAEMON" = "xyes"],
+-            [AC_MSG_ERROR([systemd startup notification support requested, but libsystemd-daemon not found.])]
++            [AC_MSG_ERROR([systemd startup notification support requested, but libsystemd not found.])]
+         )]
+     )
+ ])
+@@ -558,7 +558,6 @@ if test "x$enable_nls" = "xyes" ; then
+     GETTEXT_PACKAGE=transmission-gtk
+     AC_SUBST(GETTEXT_PACKAGE)
+     AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
+-    AM_GLIB_GNU_GETTEXT
+     transmissionlocaledir='${prefix}/${DATADIRNAME}/locale'
+     AC_SUBST(transmissionlocaledir)
+ fi
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/transmission/files/transmission-daemon b/meta-openembedded/meta-oe/recipes-connectivity/transmission/files/transmission-daemon
new file mode 100644
index 0000000..d1ffff5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/transmission/files/transmission-daemon
@@ -0,0 +1,163 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:          transmission-daemon
+# Required-Start:    networking
+# Required-Stop:     networking
+# Default-Start:     2 3 5
+# Default-Stop:      0 1 6
+# Short-Description: Start the transmission BitTorrent daemon client.
+### END INIT INFO
+
+# Original Author: Lennart A. JÃŒtte, based on Rob Howell's script
+# Modified by Maarten Van Coile & others (on IRC)
+
+# Do NOT "set -e"
+
+#
+# ----- CONFIGURATION -----
+#
+# For the default location Transmission uses, visit:
+# http://trac.transmissionbt.com/wiki/ConfigFiles
+# For a guide on how set the preferences, visit:
+# http://trac.transmissionbt.com/wiki/EditConfigFiles
+# For the available environement variables, visit:
+# http://trac.transmissionbt.com/wiki/EnvironmentVariables
+#
+# The name of the user that should run Transmission.
+# It's RECOMENDED to run Transmission in it's own user,
+# by default, this is set to 'transmission'.
+# For the sake of security you shouldn't set a password
+# on this user
+USERNAME=transmission
+
+
+# ----- *ADVANCED* CONFIGURATION -----
+# Only change these options if you know what you are doing!
+#
+# The folder where Transmission stores the config & web files.
+# ONLY change this you have it at a non-default location
+#TRANSMISSION_HOME="/var/config/transmission-daemon"
+#TRANSMISSION_WEB_HOME="/usr/share/transmission/web"
+#
+# The arguments passed on to transmission-daemon.
+# ONLY change this you need to, otherwise use the
+# settings file as per above.
+#TRANSMISSION_ARGS=""
+
+
+# ----- END OF CONFIGURATION -----
+#
+# PATH should only include /usr/* if it runs after the mountnfs.sh script.
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+DESC="bittorrent client"
+NAME=transmission-daemon
+DAEMON=$(which $NAME)
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+# Load the VERBOSE setting and other rcS variables
+[ -f /etc/default/rcS ] && . /etc/default/rcS
+
+#
+# Function that starts the daemon/service
+#
+
+do_start()
+{
+    # Export the configuration/web directory, if set
+    if [ -n "$TRANSMISSION_HOME" ]; then
+          export TRANSMISSION_HOME
+    fi
+    if [ -n "$TRANSMISSION_WEB_HOME" ]; then
+          export TRANSMISSION_WEB_HOME
+    fi
+
+    # Return
+    #   0 if daemon has been started
+    #   1 if daemon was already running
+    #   2 if daemon could not be started
+    start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE --make-pidfile \
+            --exec $DAEMON --background --test -- -f $TRANSMISSION_ARGS > /dev/null \
+            || return 1
+    start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE --make-pidfile \
+            --exec $DAEMON --background -- -f $TRANSMISSION_ARGS \
+            || return 2
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+        # Return
+        #   0 if daemon has been stopped
+        #   1 if daemon was already stopped
+        #   2 if daemon could not be stopped
+        #   other if a failure occurred
+        start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE --exec $DAEMON 
+        RETVAL="$?"
+        [ "$RETVAL" = 2 ] && return 2
+
+        # Wait for children to finish too if this is a daemon that forks
+        # and if the daemon is only ever run from this initscript.
+        # If the above conditions are not satisfied then add some other code
+        # that waits for the process to drop all resources that could be
+        # needed by services started subsequently.  A last resort is to
+        # sleep for some time.
+
+        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
+        [ "$?" = 2 ] && return 2
+
+        # Many daemons don't delete their pidfiles when they exit.
+        rm -f $PIDFILE
+
+        return "$RETVAL"
+}
+
+case "$1" in
+  start)
+        echo "Starting $DESC" "$NAME..."
+        do_start
+        case "$?" in
+                0|1) echo "   Starting $DESC $NAME succeeded" ;;
+                *)   echo "   Starting $DESC $NAME failed" ;;
+        esac
+        ;;
+  stop)
+        echo "Stopping $DESC $NAME..."
+        do_stop
+        case "$?" in
+                0|1) echo "   Stopping $DESC $NAME succeeded" ;;
+                *)   echo "   Stopping $DESC $NAME failed" ;;
+        esac
+        ;;
+  restart|force-reload)
+        #
+        # If the "reload" option is implemented then remove the
+        # 'force-reload' alias
+        #
+        echo "Restarting $DESC $NAME..."
+        do_stop
+        case "$?" in
+          0|1)
+                do_start
+                case "$?" in
+                    0|1) echo "   Restarting $DESC $NAME succeeded" ;;
+                    *)   echo "   Restarting $DESC $NAME failed: couldn't start $NAME" ;;
+                esac
+                ;;
+          *)
+                echo "   Restarting $DESC $NAME failed: couldn't stop $NAME" ;;
+        esac
+        ;;
+  *)
+        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
+        exit 3
+        ;;
+esac
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/transmission/transmission_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/transmission/transmission_git.bb
new file mode 100644
index 0000000..ee5578f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/transmission/transmission_git.bb
@@ -0,0 +1,73 @@
+DESCRIPTION = "Transmission is a fast, easy, and free BitTorrent client"
+SECTION = "network"
+HOMEPAGE = "https://transmissionbt.com/"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0dd9fcdc1416ff123c41c785192a1895"
+
+DEPENDS = "curl libevent gnutls openssl libtool intltool-native glib-2.0-native"
+RDEPENDS_${PN}-web = "${PN}"
+
+SRC_URI = " \
+	git://github.com/transmission/transmission \
+	file://0001-configure.ac-Fix-no-libsystemd-daemon.patch \
+	file://transmission-daemon \
+"
+
+# Transmission release 2.94
+SRCREV = "d8e60ee44f4295935bd98bf741f85ed19f5a7dfb"
+PV = "2.94"
+
+S = "${WORKDIR}/git"
+
+inherit autotools gettext update-rc.d systemd mime-xdg features_check
+
+PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \
+                 ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
+
+PACKAGECONFIG[gtk] = " --with-gtk,--without-gtk,gtk+3,"
+PACKAGECONFIG[systemd] = "--with-systemd-daemon,--without-systemd-daemon,systemd,"
+
+# Weak default values for transmission user and group
+# Change them in bbappend if needed
+TRANSMISSION_USER ??= "root"
+TRANSMISSION_GROUP ??= "root"
+
+# Configure aborts with:
+# config.status: error: po/Makefile.in.in was not created by intltoolize.
+B = "${S}"
+do_configure_prepend() {
+	sed -i /AM_GLIB_GNU_GETTEXT/d ${S}/configure.ac
+	cd ${S}
+	./update-version-h.sh
+	intltoolize --copy --force --automake
+}
+
+do_install_append() {
+	if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+		sed -i '/USERNAME=/c\USERNAME=${TRANSMISSION_USER}' ${WORKDIR}/transmission-daemon
+		install -d ${D}${sysconfdir}/init.d
+		install -m 0744 ${WORKDIR}/transmission-daemon ${D}${sysconfdir}/init.d/
+		chown ${TRANSMISSION_USER}:${TRANSMISSION_GROUP} ${D}${sysconfdir}/init.d/transmission-daemon
+	fi
+
+	if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+		sed -i '/User=/c\User=${TRANSMISSION_USER}' ${S}/daemon/transmission-daemon.service
+		install -d ${D}${systemd_unitdir}/system
+		install -m 0644 ${S}/daemon/transmission-daemon.service ${D}${systemd_unitdir}/system
+	fi
+}
+
+PACKAGES += "${PN}-gtk ${PN}-client ${PN}-web"
+
+FILES_${PN}-client = "${bindir}/transmission-remote ${bindir}/transmission-cli ${bindir}/transmission-create ${bindir}/transmission-show ${bindir}/transmission-edit"
+FILES_${PN}-gtk += "${bindir}/transmission-gtk ${datadir}/icons ${datadir}/applications ${datadir}/pixmaps"
+FILES_${PN}-web = "${datadir}/transmission/web"
+FILES_${PN} = "${bindir}/transmission-daemon ${sysconfdir}/init.d/transmission-daemon"
+
+SYSTEMD_SERVICE_${PN} = "transmission-daemon.service"
+
+# Script transmission-daemon following the guidelines in:
+# https://trac.transmissionbt.com/wiki/Scripts/initd
+INITSCRIPT_PACKAGES = "transmission-daemon"
+INITSCRIPT_NAME = "transmission-daemon"
+INITSCRIPT_PARAMS = "start 99 5 3 2 . stop 10 0 1 6 ."
