ChromeOS bot merged this change.
modemmanager-next: make sure required plugins are installed
To save space in the Chrome OS root filesystem, we remove all modem
plugins except for those explicitly whitelisted when building
ModemManager. However, the current approach fails to detect if a
whitelisted plugin is missing (e.g. when the plugin library is renamed).
The CL modifies the modemmanager-next ebuild to check if all whitelisted
plugins are indeed installed.
BUG=chromium:707896
CQ-DEPEND=CL:466686
TEST=Verify that all required modem plugins are installed.
Change-Id: Iafaa5f646b125d56ff8fd4fd05bbce8e97fcb904
Reviewed-on: https://chromium-review.googlesource.com/466766
Commit-Ready: Ben Chan <ben...@chromium.org>
Tested-by: Ben Chan <ben...@chromium.org>
Reviewed-by: Ben Chan <ben...@chromium.org>
---
M net-misc/modemmanager-next/modemmanager-next-9999.ebuild
1 file changed, 23 insertions(+), 12 deletions(-)
diff --git a/net-misc/modemmanager-next/modemmanager-next-9999.ebuild b/net-misc/modemmanager-next/modemmanager-next-9999.ebuild
index 39626c6..3713e39 100644
--- a/net-misc/modemmanager-next/modemmanager-next-9999.ebuild
+++ b/net-misc/modemmanager-next/modemmanager-next-9999.ebuild
@@ -104,18 +104,29 @@
# service is received. We do not want this behaviour.
find "${D}" -name 'org.freedesktop.ModemManager1.service' -delete
- # Only install plugins for supported modems to conserve space on the
- # root filesystem.
- find "${D}" -name 'libmm-plugin-*.so' ! \( \
- -name 'libmm-plugin-altair-lte.so' -o \
- -name 'libmm-plugin-generic.so' -o \
- -name 'libmm-plugin-huawei.so' -o \
- -name 'libmm-plugin-longcheer.so' -o \
- -name 'libmm-plugin-novatel-lte.so' -o \
- -name 'libmm-plugin-samsung.so' -o \
- -name 'libmm-plugin-telit.so' -o \
- -name 'libmm-plugin-zte.so' \
- \) -delete
+ # Only install the following plugins for supported modems to conserve
+ # space on the root filesystem.
+ local plugins=(
+ altair-lte
+ generic
+ huawei
+ longcheer
+ novatel-lte
+ samsung
+ telit
+ zte
+ )
+ local plugins_regex=".*/libmm-plugin-($(IFS='|'; echo "${plugins[*]}")).so"
+
+ find "${D}" -regextype posix-extended \
+ -name 'libmm-plugin-*.so' \
+ ! -regex "${plugins_regex}" \
+ -delete
+
+ local found_plugins="$(find "${D}" -regextype posix-extended \
+ -regex "${plugins_regex}" | wc -l)"
+ [[ "${found_plugins}" == "${#plugins[@]}" ]] || \
+ die "Expects ${#plugins[@]} plugins, but ${found_plugins} found."
# Install init scripts.
if use systemd; then
To view, visit change 466766. To unsubscribe, visit settings.