From 98363f933deae8ed3d83bcbb53482fc5c2edd585 Mon Sep 17 00:00:00 2001
From: Stefan Schmidt <stefan.schmidt@huawei.com>
Date: Tue, 19 Jul 2022 14:02:10 +0200
Subject: [PATCH] oniro-image-common.inc/oniro-packageconfig.inc:
 modem/usbmodem MACHINE_FEATURES

Enable a modem/usbmodem MACHINE_FEATURE to install the needed packages
for NetworkManager and ModemManager in the image. Also enabling the
ModemManager PACKAGECONFIG for NetworkManager to build the needed support.

Fixes: https://gitlab.eclipse.org/eclipse/oniro-core/oniro/-/issues/60

Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com>
---
 .../conf/distro/include/oniro-packageconfig.inc            | 5 +++++
 meta-oniro-core/recipes-core/images/oniro-image-common.inc | 7 +++++++
 2 files changed, 12 insertions(+)

diff --git a/meta-oniro-core/conf/distro/include/oniro-packageconfig.inc b/meta-oniro-core/conf/distro/include/oniro-packageconfig.inc
index d499ba73..cb952aa4 100644
--- a/meta-oniro-core/conf/distro/include/oniro-packageconfig.inc
+++ b/meta-oniro-core/conf/distro/include/oniro-packageconfig.inc
@@ -5,6 +5,11 @@
 # Define the configuration set as per our distro policy
 PACKAGECONFIG:pn-networkmanager = "nss systemd bluez5 wifi nmcli"
 
+# If the machine has a cellular modem it can set MACHINE_FEATURES+=modem to
+# enable build-in support in NetworkManager.
+PACKAGECONFIG:append:pn-networkmanager = "${@bb.utils.contains('MACHINE_FEATURES', \
+                                          'modem', ' modemmanager ', '', d)}"
+
 # We have no use for dlt-daemon as we use systemd for logging
 PACKAGECONFIG:remove:pn-mosquitto = "dlt"
 
diff --git a/meta-oniro-core/recipes-core/images/oniro-image-common.inc b/meta-oniro-core/recipes-core/images/oniro-image-common.inc
index 0ac0ab13..6ce454fb 100644
--- a/meta-oniro-core/recipes-core/images/oniro-image-common.inc
+++ b/meta-oniro-core/recipes-core/images/oniro-image-common.inc
@@ -20,3 +20,10 @@ IMAGE_INSTALL:append = "\
 			"
 
 IMAGE_INSTALL:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'optee-client', '', d)} "
+
+# If the machine has a cellular modem it can set MACHINE_FEATURES+=modem to
+# add the needed packages into the image. In the special case of an USB cellular
+# modem adding MACHINE_FEATURES+="modem usbmodem" ensures to have the usb-modeswitch
+# package as well.
+IMAGE_INSTALL:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'modem', 'networkmanager-wwan modemmanager', '', d)} "
+IMAGE_INSTALL:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'usbmodem', 'usb-modeswitch', '', d)} "
-- 
GitLab